Python如何从txt文件中读取字典列表格式数据
问题原因
你现在用f.read()读出来的是字符串类型的原始文本,根本没转成Python原生的list、dict数据结构,当然没法得到符合类型要求的结果。
你存在data.txt里的内容是标准JSON格式,直接用Python内置的json模块解析就行,不用装任何第三方依赖。
正确实现代码
import json with open('data.txt', 'r', encoding='utf-8') as f: list_of_dict = json.load(f)
效果验证
运行以下测试代码,输出完全匹配你的预期:
print(list_of_dict[0]) # 输出: {'name': 'Aaron', 'age': '1'} print(list_of_dict[1]) # 输出: {'name': 'Bruce', 'age': '2'} print(type(list_of_dict[1])) # 输出: <class 'dict'> print(type(list_of_dict)) # 输出: <class 'list'>
注意事项
- 打开文件的时候最好显式写上
encoding参数,避免不同系统默认编码不一样导致读出来乱码。如果你的文件是gbk编码,把参数换成encoding='gbk'就可以。 - 别图省事用
eval(f.read())解析,这种写法会直接执行文本里的任意代码,有严重安全隐患。json.load是处理这类结构化JSON数据的标准方案,安全还快。
内容的提问来源于stack exchange,提问作者Tangobones
相关产品推荐
相关产品推荐

