如何使用 python 中的 pandas 从动态 JSON 对象获取所有键
How to get all the keys from dynamic JSON object using pandas in python
我从多个网络服务收到复杂的 JSON 响应。我需要使用 python 获取各个级别的所有密钥。要使用 JSON_NORMALISE 我需要知道键名。由于我收到多个回复,我无法提供密钥名称。如果我在外层标准化,则下层的 json 不会转换为字典。它仍然是 json 格式。
{'Id': 123,
'oldnumber': 1,
'new number': 8,
'version': 1,
'newversion': 1,
'personList':[{
'id':1,
'name': xyz,
'marks':[{'phy':90,
'che':80
}
{'bot':90,
'zoo':80
},
{'phy':60,
'che':80
}
{'bot':20,
'zoo':80
}
]}
],
'anotherList':[{
'id':1,
'data': xyz,
'some':[{'not':90,
'dot':80
}
{'cot':90,
'pot':80
},
{'ans':60,
'dog':80
}
{'cat':20,
'mat':80
}
]}
]
}
如何从我从响应中获得的 JSON 中读取所有键名?
要从复杂的 JSON 对象中获取所有键,我们可以直接使用简单的 python 遍历 JSON 对象。我从下面 link.
得到了解决方案
参考 - https://towardsdatascience.com/flattening-json-objects-in-python-f5343c794b10
我稍微修改了代码,现在我可以从 JSON
获取所有密钥
def normalise_json(y):
out = set()
def normalise(x):
if type(x) is dict:
for a in x:
out.add(a)
normalise(x[a])
elif type(x) is list:
for a in x:
normalise(a)
normalise(y)
return out
我从多个网络服务收到复杂的 JSON 响应。我需要使用 python 获取各个级别的所有密钥。要使用 JSON_NORMALISE 我需要知道键名。由于我收到多个回复,我无法提供密钥名称。如果我在外层标准化,则下层的 json 不会转换为字典。它仍然是 json 格式。
{'Id': 123,
'oldnumber': 1,
'new number': 8,
'version': 1,
'newversion': 1,
'personList':[{
'id':1,
'name': xyz,
'marks':[{'phy':90,
'che':80
}
{'bot':90,
'zoo':80
},
{'phy':60,
'che':80
}
{'bot':20,
'zoo':80
}
]}
],
'anotherList':[{
'id':1,
'data': xyz,
'some':[{'not':90,
'dot':80
}
{'cot':90,
'pot':80
},
{'ans':60,
'dog':80
}
{'cat':20,
'mat':80
}
]}
]
}
如何从我从响应中获得的 JSON 中读取所有键名?
要从复杂的 JSON 对象中获取所有键,我们可以直接使用简单的 python 遍历 JSON 对象。我从下面 link.
得到了解决方案参考 - https://towardsdatascience.com/flattening-json-objects-in-python-f5343c794b10
我稍微修改了代码,现在我可以从 JSON
获取所有密钥def normalise_json(y): out = set()
def normalise(x):
if type(x) is dict:
for a in x:
out.add(a)
normalise(x[a])
elif type(x) is list:
for a in x:
normalise(a)
normalise(y)
return out