python - 如何解析只有数字的 JSON

标签 python json parsing

我还在学习 python,我正在尝试解析来自 JSON 的数据,看起来像

{"297050": [[12, 137], [193, 776]], "297056": [[12, 203]]

但我找不到阅读它的方法,就像我喜欢的那样

For entry 297050 this is the list [12, 137], [193, 776] For entry 297056 this is the list [12, 203]

我试过类似的东西

import json
from pprint import pprint

input_file = open ('file_JSON.txt')
json_array = json.load(input_file)
store_list = []


for obj in json_array :
    print obj,json_array[obj]

这给了我每个对象的对象和数组

297050 [[12, 137], [193, 776]]

但我实际上希望能够打印出现在内部的每个元素,例如 json_array[obj][0]...等

最佳答案

您可能应该使用嵌套的 for 循环..您应该打印什么取决于您期望输出的外观..但您可以试试这个:

#!/usr/bin/env python3
import json

data = '{"297050": [[12, 137], [193, 776]], "297056": [[12, 203]]}'

data = json.loads(data)

for k, v in data.items():
    print(k)
    for list_of_ints in v:
        for integer in list_of_ints:
            print(integer)

结果:

297050
12
137
193
776
297056
12
203

解释:

我们加载示例 json,并使用 items 迭代它的键值对。现在我们的键在 k 中,最外层的列表在 v 中。 v 是一个列表,一个列表的列表..所以我们将其迭代为 list_of_ints。最后我们遍历每个列表,边走边打印出最里面的整数。

如果你想要的输出是这样的:

对于条目 297050,这是列表 [12, 137],[193, 776] 对于条目 297056,这是列表 [12, 203]

然后我们可以稍微修改脚本..并摆脱很多循环。

#!/usr/bin/env python3
import json

output = "For entry {} this is the list {}"
data = '{"297050": [[12, 137], [193, 776]], "297056": [[12, 203]]}'

data = json.loads(data)

for k, v in data.items():
    lists_with_commas = ", ".join([str(x) for x in v])
    print(output.format(k, lists_with_commas), end=" ")

输出

For entry 297050 this is the list [12, 137], [193, 776] For entry 297056 this is the list [12, 203]

解释:

我们使用一个模板字符串..它有 {} 我们想放东西的地方,所以我们可以稍后在上面运行 .format

我们只需要键和最里面的列表。所以我们只需要一个 for 循环。我们确保通过使用 .join 获取示例中的逗号,并在其中进行列表推导,将所有列表转换为 v 中的字符串。

关于python - 如何解析只有数字的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56188624/

相关文章:

python - 从混合内容文档中提取多个 xml 树

python - 从文本文件中提取单词

python - 使用 python 编码从 Excel 读取字符串的缺点 ('utf-8' )

javascript - 谷歌表格: Parsing JSON results

java - 如何将 Android 代码导出到 Android Studio 中的 java 库

algorithm - 解析摩尔斯电码

python - 如何创建新的 CSV 文件并将其存储在 Google Cloud Storage 中?

python - 联结表(多对多)或自定义字段类型上的多对一关系?

java - json jackson异常 map 序列化

用于解析 latex 或 MathML 字符串的 Java 或 Scala 库