为什么我的个人推特ID号将最后几个数字改为“我的个人推特ID号”;0“;什么时候收到JavaScript?

为什么我的个人推特ID号将最后几个数字改为“我的个人推特ID号”;0“;什么时候收到JavaScript?,javascript,python,json,numbers,Javascript,Python,Json,Numbers,我正在使用Tweepy python库访问Twitter API以检索加密货币推文。我的应用程序使用Django后端和ReactJs前端。虽然我的网络应用程序将显示检索到的tweet本身,但我还打算提供一个可点击的链接,以重新路由到Twitter上的原始链接 在返回JSON时,我的Django Rest框架API正在完整地检索正确的Tweet ID号。然而,当我从Rest框架API检索到我的前端时,Tweet ID号的最后几位数字更改为“0”。我想知道这是否是Twitter使用的默认保护措施 D

我正在使用Tweepy python库访问Twitter API以检索加密货币推文。我的应用程序使用Django后端和ReactJs前端。虽然我的网络应用程序将显示检索到的tweet本身,但我还打算提供一个可点击的链接,以重新路由到Twitter上的原始链接

在返回JSON时,我的Django Rest框架API正在完整地检索正确的Tweet ID号。然而,当我从Rest框架API检索到我的前端时,Tweet ID号的最后几位数字更改为“0”。我想知道这是否是Twitter使用的默认保护措施

Django Rest API

<div className="center-column-tweet">
    <div className="item-row-tweets">
        <div className="left">
            <span>
                <b>@{tasks.bitcoin_tweet_user}</b><br/><br/>
                "{tasks.bitcoin_tweet}"<br/>
                <b>Link:</b> https://twitter.com/twitter/statuses/{tasks.bitcoin_tweet_link}
            </span>
         </div>
     </div>
</div>
…
“比特币用户”:“TheStarPhoenix”,
“比特币推特”:“现在可以用比特币购买特斯拉,埃隆·马斯克说[…]”,
“比特币推特链接”:1375092596339585038,
…
网站前端

<div className="center-column-tweet">
    <div className="item-row-tweets">
        <div className="left">
            <span>
                <b>@{tasks.bitcoin_tweet_user}</b><br/><br/>
                "{tasks.bitcoin_tweet}"<br/>
                <b>Link:</b> https://twitter.com/twitter/statuses/{tasks.bitcoin_tweet_link}
            </span>
         </div>
     </div>
</div>

App.js

<div className="center-column-tweet">
    <div className="item-row-tweets">
        <div className="left">
            <span>
                <b>@{tasks.bitcoin_tweet_user}</b><br/><br/>
                "{tasks.bitcoin_tweet}"<br/>
                <b>Link:</b> https://twitter.com/twitter/statuses/{tasks.bitcoin_tweet_link}
            </span>
         </div>
     </div>
</div>

@{tasks.bitcoin\u tweet\u user}

“{tasks.bitcoin_tweet}”
链接:https://twitter.com/twitter/statuses/{tasks.bitcoin_tweet_link}
您已成为浮点舍入的牺牲品

JSON中的数值大致表示为十进制数字序列,可以选择后跟一个小数点,然后是更多的数字0,原则上,数字序列可以任意长。然而,这并不意味着每个JSON实现实际上都支持任意大的数字并准确地保留它们的值:Python的
JSON
模块支持(至少对于整数),因为该语言支持任意大的整数作为内置特性,但大多数其他实现不支持。实际上,JSON数字通常被解析为IEEE 754双精度浮点值;当遇到无法用该数字格式精确表示的值时,该数字通常四舍五入到最接近的可表示值。这就是JavaScript中发生的情况:数字1375092596339585038太大,无法用JavaScript数字类型精确表示,因此,当在JavaScript端对其进行解析时,它会四舍五入到最接近的可表示值,然后打印为1375092596339585000

(这并没有定义每个实现必须支持的任何数字范围,也没有定义当无法准确解析某个值时应该发生什么,这是其中之一。)

您应该更改API,以便将tweet ID作为字符串而不是数字返回。考虑到tweet ID无论如何都不是一个数量(例如,没有理由对其执行算术运算),这样做不会造成太大损失


0为了简单起见,我没有提到指数符号