python - 打印 .json() 返回的字典对象中的所有值

标签 python json dictionary

我有一段代码,允许我在网站的 XHR 响应上打印使用 .json() 方法返回的字典项:

teamStatDicts = responser[u'teamTableStats']
for statDict in teamStatDicts:
    print("{seasonId},{tournamentRegionId},{minsPlayed},"
            .decode('cp1252').format(**statDict))

按以下格式打印:

9155,5,900
9155,5,820
...
...
...
9155,5,900
9155,5,820         

只要字典中的键永远不会改变,上述方法就可以正常工作。然而,在我提交的一些 XHR 中,它们确实如此。有没有一种方法可以以与上面完全相同的格式打印所有字典值?我尝试了一些方法,但确实一事无成。

最佳答案

一般来说,给出一个dict,你可以这样做:

print(','.join(str(v) for v in dct.values()))

这里的问题是您不知道值的顺序。即 CSV 数据中的第一个值是 seasonId 吗?是tournamentRegionId吗?玩了多少分钟?或者这完全是你不知道的其他事情?

所以,我的观点是,除非您知道字段名称,否则如果数据以普通字典形式提供给您,则无法以任何可靠的顺序将它们放入字符串中。

如果您在其他地方使用 json 解码 XHR,则可以将 object_pairs_hook 设为 OrderedDict:

from collections import OrderedDict
import json

...
data = json.loads(datastring, object_pairs_hook=OrderedDict)

现在保证数据与数据字符串的顺序相同,但这仅在数据字符串中的数据以特定方式排序时才有帮助(通常情况并非如此)。

关于python - 打印 .json() 返回的字典对象中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26788807/

相关文章:

python - 使用 OpenCV imwrite 进行图像类型转换

Python Mechanize 检查是否需要字段

java - 限制对 AWS S3 服务器上的 JSON 文件的写入访问

c# - 如何忽略/跳过/处理 HttpWebResponse 错误并仍然将 JSON 返回到我的代码?

python - 匹配前后如何匹配和创建字典

Android Volley Kotlin : (Mutable)Map<(raw) Any?,(原始)有吗?>!与 MutableMap<String, String>

python - 在python上安排任务

python - 添加时间戳和用户名到日志

java - 如何将 JSON 数组转换为 Java 列表。我在用斯文森

python - 从对象列表创建 pandas Dataframe