Python字典在Lis中以字符串形式存储

2024-04-25 17:58:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个txt文件,其中包含Python中的字典,我以以下方式打开它:

with open('file') as f:
    test = list(f)

当我查看test时,结果是一个元素的列表。第一个元素是字典的字符串(它还包含其他字典),因此它看起来像:

^{pr2}$

有没有什么方法可以将其作为字典存储,而不必确定不同键和相应值开始/结束的字符索引?或者,是否可以以将数据识别为字典的方式读入文件?在


Tags: 文件方法字符串testtxt元素列表字典
3条回答

如果您正在读取json文件,那么您可以使用^{}模块。在

import json

with open('data.json') as f:    
    data = json.load(f)

如果确定正在读取的文件包含python字典,则可以使用内置的^{}将这些字符串转换为python字典:

^{pr2}$

还有一种替代方法,eval。但是使用ast.literal_eval会更好。这个answer将解释原因。在

您可以使用json模块

用于写作

import json

data = ["ID": 1, date: "2016-01-01", "A": {name: "Steve", id: "534", players:{last: "Smith", first: "Joe", job: "IT"}}
with open("out.json", "w") as f:
    json.dump(data)

阅读

^{pr2}$

从文件中读取时,只需使用eval()。在

例如:

>>> f = open('file.txt', 'r').read()
>>> mydict = eval(f)
>>> type(f)
<class 'str'>
>>> type(mydict)
<class 'dict'>

相关问题 更多 >