首页 > 解决方案 > 从文件中提取数据作为字典

问题描述

您能否建议如何从文件中读取数据作为字典。

文件包含以下几行:

{'foo1': (0, 10), 'foo2': (0, 9), 'foo3': (0, 20)}
{'foo4': (0, 16), 'foo5': (0, 7), 'foo6': (0, 13), 'foo7': (0, 11)}
{'foo8': (0, 8), 'foo9': (0, 8), 'foo10': (0, 7)}
{'foo11': (0, 8)}

{'key': (value, value)} 格式的所有数据。文件中的所有键都是不同的。

我想得到以下“dict”:

{'foo1': (0, 1), 'foo2': (0, 0), 'foo3': (0, 1), 'foo4': (1, 0), 'foo5': (0, 0), 'foo6': (0, 5), 'foo7': (0, 2), 'foo8': (2, 2), 'foo9': (1, 1), 'foo10': (0, 7), 'foo11': (0, 1)}

是否可以从文件中提取字典作为合并字典?

有一会儿我从文件中只得到“列表”并停留在这一步

import ast
with open('filename') as f:
    content = [ ast.literal_eval( l ) for l in f.readlines() ] 
    print(content)
    

输出:

[{'foo1': (0, 10), 'foo2': (0, 9), 'foo3': (0, 20)}, {'foo4': (0, 16), 'foo5': (0, 7), 'foo6': (0, 13), 'foo7': (0, 11)}, {'foo8': (0, 8), 'foo9': (0, 8), 'foo10': (0, 7)}, {'foo11': (0, 8)}]

标签: python

解决方案


由于列表理解,当您获得内容中的字典列表时。我会稍微修改一下。

import ast
content = {}
with open('filename') as f:
    content = content.update(content,ast.literal_eval( l ) for l in f.readlines())
print(content)

看看它是否有效我是初学者。我从下面的链接学习了如何合并字典。 https://levelup.gitconnected.com/7-different-ways-to-merge-dictionaries-in-python-30148bf27add


推荐阅读