python - 通过嵌套的 JSON 键解析
问题描述
我有一个如下所示的 JSON 文件:
data = {
"x": {
"y": {
"key": {
},
"w": {
}
}}}
并已将其转换为 python 中的字典,以便他们使用以下代码对其进行解析以查找键:
entry = input("Search JSON for the following: ") //search for "key"
if entry in data:
print(entry)
else:
print("Not found.")
但是,即使我输入“key”作为条目,它仍然返回“未找到”。我是否需要控制数据的深度,如果我不知道“key”的位置但仍想搜索它怎么办。
解决方案
您的方法不起作用,因为key
不是data
. data
有一把钥匙:x
. 因此,您需要查看字典,看看键是否在其中。如果没有,您可以将下一级字典递归地传递回函数。这将找到第一个匹配的键:
data = {
"x": {
"y": {
"key": "some value",
"w": {}
}}}
key = "key"
def findValue(key, d):
if key in d:
return d[key]
for v in d.values():
if isinstance(v, dict):
found = findValue(key, v)
if found is not None:
return found
findValue(key, data)
# 'some value'
None
如果找不到您的密钥,它将返回
推荐阅读
- three.js - 如何在特定关键帧处停止动画
- naming-conventions - “懒惰”在编程意义上是什么意思?
- powershell - 在 PowerShell 中过滤重复消息?
- angular - 如何在 Ionic 3 中发送电子邮件(不使用电子邮件编辑器)
- scala - 如何获取传递给 Scala 宏的参数的运行时值?
- websphere - mod_was_ap22_http.so 在 Websphere 9 上不可用?
- python - keras 总是直线预测
- php - 从未知格式/Date(1576648800000)/在php中格式化日期
- python - python axes.ravel() IndexError:数组索引过多
- python - Python - 比较两个数据帧之间的范围