你能告诉我如何从文件中读取数据吗
文件包含以下行:
{'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)}格式。文件中的所有键都不同
我想得到以下“命令”:
{'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)}]
如果您完全相信这个文件是无辜的,并且只是一个字典,那么您可以使用python内置函数
eval
来完成这项工作。e、 g:但是,如果这允许用户向文件中输入任何内容,则可能会在您的计算机上运行任意代码。如果这依赖于用户输入,则需要采取一些预防措施,请参阅Python: make eval safe上的顶部答案以了解一些想法
由于列表理解,当您在内容中获得词典列表时。 我会修改一下
看看能不能用我是初学者。我从下面的链接学习了如何合并字典。 https://levelup.gitconnected.com/7-different-ways-to-merge-dictionaries-in-python-30148bf27add
签出
ast.literal_eval()
:https://www.kite.com/python/answers/how-to-read-a-dictionary-from-a-file-in python相关问题 更多 >
编程相关推荐