【发布时间】:2018-07-31 15:13:02
【问题描述】:
我目前正在使用 for 循环来打印字典的所有必需键值对。但是有没有更简单的方法来选择所需的键值对?
for i in (out['elements']):
out = (i['insights'][0]['details']['socialInfo'])
out_temp.append(out)
out的内容实际上是一个带有字典列表的JSON,每个字典都包含一个字典列表。
【问题讨论】:
-
“必需”对是什么意思?您能否发布一个可能在
out中的 JSON 示例,以及您想要的输出是什么? -
问
first key value of dictionary是什么意思?字典不是序列,即不存储位置。使用OrderedDict 可以实现有序字典 -
有些库可以让您将“关键路径”编写为单个字符串或元组,并使用通配符将其一次性应用于嵌套结构,并返回结果列表(可能是扁平化的) .至少有三种不同的格式,一种基于 XPath,一种基于 Cocoa KVC,一种基于带有大量方括号的类 JavaScript(也类 Python)语法。
-
例如,您可以写
out_temp = path(out, 'elements.*.insights.0.details').flatten()来获取此列表。如果您对此感兴趣,您应该在 PyPI 中搜索 dpath、kvc 和……我忘记了另一个,但环顾四周,您应该会找到它。 -
就个人而言,我认为使用原生理解比使用 dpath 通配符更好地处理简单的情况,而复杂的情况通常需要在搜索中使用某种自定义逻辑(至少是错误处理),所以在哪个窗口这些库的用处很小。但是有些人似乎发现用嵌套通配符来思考比我容易得多,或者用循环或其他什么来思考要困难得多。
标签: python json list dictionary