我想知道如何获取.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文件。
答案 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
与eval
,ast.literal_eval
cannot execute arbitrary code不同,因此不会带来与eval
相同的安全性/稳定性问题。
json.load
/ json.loads
也许也可以工作(并且在这种情况下也可以工作),但是它通常受到更多限制,因为它只允许JSON规范的稍微超集(例如,允许整数作为键) ),但不支持tuple
,set
,bytes
等。如果您的文件打算为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