gpt4 book ai didi

python - 在 Python 中获取字典的所有字段名称

转载 作者:行者123 更新时间:2023-11-28 16:55:56 24 4
gpt4 key购买 nike

有没有办法获取Python字典的所有嵌套字段名?

例如:

字典:

{
"a": [
{
"b": {
"c": [
"f",
"g"
]
}
}
]
}

结果:

'a[0].b.c[0]'
'a[0].b.c[1]'

最佳答案

您可以将递归与生成器一起使用:

def traverse(d, c = []):
if isinstance(d, list):
for i, a in enumerate(d):
if not isinstance(a, (dict, list)):
yield '.'.join(c+[f'[{i}]'])
else:
yield from traverse(a, c+[f'[{i}]'])
elif isinstance(d, dict):
for a, b in d.items():
if not isinstance(b, (list, dict)):
yield '.'.join(c+[a])
else:
yield from traverse(b, c+[a])


d = {'a': [{'b': {'c': ['f', 'g']}}]}
import re
print([re.sub('\.(?=\[)', '', i) for i in traverse(d)])

输出:

['a[0].b.c[0]', 'a[0].b.c[1]']

关于python - 在 Python 中获取字典的所有字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com