【发布时间】:2016-03-01 18:54:21
【问题描述】:
使用eval() 或ast.literal_eval()(根据其他人的建议)从文件创建字典会产生奇怪的结果,我不知道为什么。
我的文件file.txt 包含以下内容:
{0 : {1: 6, 1:8}, 1 : {1:11}, 2 : {3: 9}, 3 : {},4 : {5:3},5 : {2: 7, 3:4}}
我把它读进字典,然后打印出来
graph1 = {}
graph1 = ast.literal_eval(open("file.txt").read())
我得到了这个东西,{1:6} 不见了。
{0: {1: 8}, 1: {1: 11}, 2: {3: 9}, 3: {}, 4: {5: 3}, 5: {2: 7, 3: 4}}
我把'file.txt'的内容改成这样:
{0: {2: 7, 3: 4}, 1: {1: 11}, 2: {3: 9}, 3: {}, 4: {5: 3}, 5: {2: 7, 3: 4}}
然后显示正确的内容!
然后我把file.txt的内容改成这个,这里我把1:6改写成2:6
{0 : {2: 6, 1:8}, 1 : {1:11}, 2 : {3: 9}, 3 : {},4 : {5:3},5 : {2: 7, 3:4}}
这是输出,{2:6} 和 {1:8} 交换位置!
{0: {1: 8, 2: 6}, 1: {1: 11}, 2: {3: 9}, 3: {}, 4: {5: 3}, 5: {2: 7, 3: 4}}
我要做的就是正确地将文件的内容读入我的字典。出了什么问题?
【问题讨论】:
标签: python file dictionary file-io eval