从文件中提取数据作为dictionary



您能建议如何将文件中的数据作为dict.读取吗

文件包含以下行:

{'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)}

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

有一瞬间,我只得到了";列表";从文件中删除并在此步骤中卡住

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)}]

查看ast.literal_eval():https://www.kite.com/python/answers/how-to-read-a-dictionary-from-a-file-in--python

如果您完全相信这个文件是无辜的,并且只是一个字典,那么您可以使用python内置函数eval来完成任务。例如:

myfile = open("file.txt", "r")
mydict = eval(myfile.read())

然而,如果这允许任何用户输入到文件中,则可能会用于在您的计算机上运行任意代码。如果这依赖于用户输入,需要采取一些预防措施,请参阅Python上的首要答案:确保eval对某些想法的安全。

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

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

最新更新