如何将文件转换为字典?

时间:2019-09-12 00:20:41

标签: python dictionary

我想知道如何获取.txt文件并将其转换为Python字典。 .txt将存储地图的信息,其中包含一些名称和数字。

.txt文件的示例如下:

{"Jerry" : 2353543}

我想获取此文本文件并将其添加到python中的字典中。示例:

file = open("random.txt",)
read_file = file.read()
#Then somehow add this read_file into the contact information to produce:
contact_information = {"Jerry" : 2345355}

最后,代码将写回到.txt文件。

2 个答案:

答案 0 :(得分:0)

如果文件内容仅由构成合法Python dict文字的字符串组成,而该字符串递归地仅包含Python文字,则可以使用ast.literal_eval

>>> data = '{"Jerry" : 2353543}'
>>> import ast
>>> d = ast.literal_eval(data)
>>> d
{'Jerry': 2353543}
>>> d['Jerry']  # It's an actual dict!
2353543

evalast.literal_eval cannot execute arbitrary code不同,因此不会带来与eval相同的安全性/稳定性问题。

json.load / json.loads也许也可以工作(并且在这种情况下也可以工作),但是它通常受到更多限制,因为它只允许JSON规范的稍微超集(例如,允许整数作为键) ),但不支持tuplesetbytes等。如果您的文件打算为JSON,请使用它,但如果< em>打算是Python文字,请使用ast.literal_eval

答案 1 :(得分:0)

使用json模块从文件中加载数据。

>>> import json
>>> f = open("random.txt")
>>> contact_information = json.load(f, parse_int=int)
>>> contact_information
{'Jerry': 2353543}
>>> contact_information["Jerry"]
2353543