Python aiohttp 响应编号已更改

Python aiohttp response numbers are altered

我目前在客户端-服务器应用程序上遇到了一个奇怪的行为。

服务器是用 python 编写的,使用 aiohttp 和 returns a json 有很多 id(数字类型)。每个 id 都被更改了。我在返回之前在服务器中打印了响应,它包含正确的 ID。

示例 ID: 481439269479645194、190601736623226882、338222603829510164

但是在浏览器网络面板中我可以看到,到达的号码已更改。最后一位数字不同。

以上例子: 481439269479645200、190601736623226880、338222603829510140

我无法确定这些 ID 的更改位置和方式。

浏览器中的数字存储为 64 位浮点数。可以准确表示的最大整数是 9007199254740991。您的数字远大于并且是近似值。例如:

console.log([481439269479645194, 190601736623226882, 338222603829510164])

将打印:

[481439269479645200, 190601736623226880, 338222603829510140]

您可以使用 BigInt 来操纵这些数字,但您必须将它们存储在 JavaScript 源中,并在 JSON 中作为字符串存储:

console.log([BigInt("481439269479645194"), BigInt("190601736623226882"), BigInt("338222603829510164")])