[英]How to read a full dictionary data type from a text file in python?
[英]How to read dictionary data from a file in python?
我有以下文件 dic.txt:
{'a':0, 'b':0, 'c':0, 'd':0}
我想阅读它的内容并用作字典。 输入新数据值后,我需要将它们写入该文件。 基本上我需要一个脚本来处理字典,更新它的值并保存它们以备后用。
我有一个工作脚本,但无法弄清楚如何将 dic.txt 的内容实际读入脚本中的变量中。 因为当我尝试这个时:
file = '/home/me/dic.txt'
dic_list = open(file, 'r')
mydic = dic_list
dic_list.close()
我得到的 mydic 是一个 str。 而且我无法操纵它的值。 所以问题来了。 如何从 dic.txt 创建字典?
您需要解析数据才能从字符串中获取数据结构,幸运的是,Python 提供了一个用于安全解析 Python 数据结构的函数: ast.literal_eval()
。 例如:
import ast
...
with open("/path/to/file", "r") as data:
dictionary = ast.literal_eval(data.read())
您可以使用 python 内置函数 eval():
>>> mydic= "{'a':0, 'b':0, 'c':0, 'd':0}"
>>> eval(mydic)
{'a': 0, 'c': 0, 'b': 0, 'd': 0}
>>>
>>> import json
>>> json.loads('{"a":0, "b":0, "c":0, "d":0}')
{u'a': 0, u'c': 0, u'b': 0, u'd': 0}
所以
with open('/path/to/file', 'r') as f:
d = json.loads(f.read().replace("'", '"')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.