展平嵌套json并获取python中的键和嵌套键

展平嵌套json并获取python中的键和嵌套键,python,json,Python,Json,我需要从json中提取键和嵌套键。以下是我的示例文本: {"Field1":"a","Field2":"b","Field3":"c","AdditionalInfo":{"Name":"foo"}} 以下代码将嵌套键添加为嵌套键和常规键: (附加信息\u名称,字段1,字段2,字段3,名称) 如何修改此函数,以获得此

我需要从json中提取键和嵌套键。以下是我的示例文本:

{"Field1":"a","Field2":"b","Field3":"c","AdditionalInfo":{"Name":"foo"}}
以下代码将嵌套键添加为嵌套键和常规键:
(附加信息\u名称,字段1,字段2,字段3,名称)

如何修改此函数,以获得此函数?您会注意到,我不需要最后一个键Name,因为它不存在于示例文本中:
(AdditionalInfo\u Name,Field1,Field2,Field3)

不完全清楚您的目标,但使用
flatte\u json
库将为您提供展平字典,键也非常容易

from flatten_json import flatten
data = {"Field1":"a","Field2":"b","Field3":"c","AdditionalInfo":{"Name":"foo"}}
flattened_dict = [flatten(d, '.') for d in [data]][0]
flattened_keys = [flatten(d, '.') for d in [data]][0].keys()


In [31]: flattened_dict
Out[31]: {'Field1': 'a', 'Field2': 'b', 'Field3': 'c', 'AdditionalInfo.Name': 'foo'}

In [32]: flattened_keys
Out[32]: dict_keys(['Field1', 'Field2', 'Field3', 'AdditionalInfo.Name'])

你能分享一下你的字典应该是什么样子吗?我用这个来创建一个字段列表。我将更新代码以明确这一点。谢谢。是的,这正是我需要的。非常感谢。
from flatten_json import flatten
data = {"Field1":"a","Field2":"b","Field3":"c","AdditionalInfo":{"Name":"foo"}}
flattened_dict = [flatten(d, '.') for d in [data]][0]
flattened_keys = [flatten(d, '.') for d in [data]][0].keys()


In [31]: flattened_dict
Out[31]: {'Field1': 'a', 'Field2': 'b', 'Field3': 'c', 'AdditionalInfo.Name': 'foo'}

In [32]: flattened_keys
Out[32]: dict_keys(['Field1', 'Field2', 'Field3', 'AdditionalInfo.Name'])