如何使用 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