python - 从文件中提取数据作为字典
问题描述
您能否建议如何从文件中读取数据作为字典。
文件包含以下几行:
{'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)}]
解决方案
由于列表理解,当您获得内容中的字典列表时。我会稍微修改一下。
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
推荐阅读
- java - 为什么我的 View.findViewById 返回 null?
- python - 如何根据时间戳范围和行类型配对 SPARK 数据帧中的行
- vue.js - VueJS 最好的方式将 css 从孩子应用到父母
- java - com.mongodb.client.MongoClient 被 com.mongodb.MongoClient 覆盖
- reactjs - 使用 React.useImperativeHandle() 声明类型
- android - :[已解决]:将 gradle 升级到 4.0.0 后,改造不再收到响应
- python - 在python中从FTP中删除早于x天的文件
- sql-server - 查询:实现逻辑的更好方法
- java - 在 ColdFusion 中使用 OneLogin 实现 SAML 时抛出错误
- python - 如何在 tensorflow-gpu 中使用千层面?