在Python中提取嵌套字典值

2024-09-29 23:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我很接近,但在这件事上绕圈子。我有一个从JSON导入的Python字典。原始数据太多了,不能放在这里。代码的工作方式与我想要的一样,并打印出我想要的内容,只是它只返回字典中的最后一个值。我该如何修改它以返回所有值并打印它在这里的显示方式?最后,我想把这些数据作为一个条目添加到数据库中。在

代码:

text = json.loads(content)

a = {}

def extract(DictIn, Dictout):
    for key, value in DictIn.iteritems():
        if isinstance(value, dict): 
            extract(value, Dictout)
        elif isinstance(value, list):
            for i in value:
                extract(i, Dictout)
        else:
            Dictout[key] = value

extract(text, a)

for k, v in a.iteritems():
    print k, ":", v

结果应该如下所示,但是有大约40个条目。当前代码只显示最后一个条目:

^{pr2}$

Tags: key代码textinjsonfor字典value
1条回答
网友
1楼 · 发布于 2024-09-29 23:25:14

问题出在你的Dictout[key] = value

在Python字典中,keysunique

假设

_d = {1: 'one', 2: 'two'}

>>> print _d
{1: 'one', 2: 'two'}

>>> _d[1] = 'another one'
>>> print _d
{1: 'another one', 2: 'two'}

我猜在for循环中,您是现有的overwriting valuekey,这就是为什么只存储最后一个条目!。在

尝试更改数据结构,例如list of dictionaries,这样您的输出可能看起来像

^{pr2}$

相关问题 更多 >

    热门问题