【发布时间】:2020-03-24 08:28:37
【问题描述】:
所以我一直在创建一个调用API 以获取其 JSON 代码的 python 代码。
使用此代码请求 api 后:
url = requests.get("https://stats.foldingathome.org/api/donor/PointofHorizon")
然后我会将给定的 JSON 信息打印到控制台中以获取此输出:
{"wus": 131, "rank": 99964, "total_users": 2236318, "active_50": 2, "path": "donor/PointofHorizon", "wus_cert": "https://apps.foldingathome.org/awards?user=35025837&type=wus", "id": 35025837, "credit_cert": "https://apps.foldingathome.org/awards?user=35025837&type=score", "last": "2020-03-22 15:18:54", "name": "PointofHorizon", "teams": [{"wus": 97, "last": "2020-03-22 15:18:54", "uid": 35025837, "active_50": 2, "active_7": 2, "credit": 310435, "team": 225605, "name": "PC Master Race - PCMR"}, {"wus": 34, "last": "2019-08-17 13:00:11", "uid": 35025837, "active_50": 0, "active_7": 0, "credit": 431809, "team": 223518, "name": "LinusTechTips_Team"}], "active_7": 2, "credit": 742244}
这可以完美地在 Windows 机器上运行 python 代码,但如果我要在 Raspberry Pi 上运行这个精确的 python 代码,我会得到 JSON,但它会完全随机化。 请注意,windows 和 Pi 都运行完全相同的代码,windows 给了我我想要的输出,而 pi 不是。谁能解释为什么我在 Pi 上得到随机输出而不是 windows?
这里有一些 python 代码在 windows 和 Pi 上运行 3 次的屏幕截图,所以你可以明白我所说的随机是什么意思。但基本上它是从 pi 上的 API 获取信息,而不是以 API 页面上的正确顺序显示 JSON 文件:
窗户: 编辑:此窗口的 Python 版本是 Python 3.8.2
树莓派:
【问题讨论】:
-
能否添加您在 windows 上运行的 python 版本?
-
抱歉将其添加到问题中,但它是 3.8.2
-
如果“随机化”是指键的顺序不同(抱歉,我不会尝试比较两个代码图像),那么这是由于 Python 3.8x dicts 被排序而导致的它们不在以前的版本中。这是一个实现细节,实际上完全无关紧要,因为 json 规范明确指出 json 对象是 unordered 键=>值的集合,因此无论如何您都不应该依赖键排序。
标签: python api raspberry-pi python-requests