如何将包含词典列表的文件读入python?

如何将包含词典列表的文件读入python?,python,dictionary,Python,Dictionary,我创建了一个文件,其中包含我正在使用的词典列表。不幸的是,我不知道如何以相同的格式将该文件重新导入python 我最初将文件写成JSON和文本,如下所示: d = list_of_dics jsonarray = json.dumps(d) with open('list_of_dics.txt', 'w') as outfile: json.dump(jsonarray, outfile) with open('list_of_dics.json', 'w') as outfile

我创建了一个文件,其中包含我正在使用的词典列表。不幸的是,我不知道如何以相同的格式将该文件重新导入python

我最初将文件写成JSON和文本,如下所示:

d = list_of_dics
jsonarray = json.dumps(d)

with open('list_of_dics.txt', 'w') as outfile:
    json.dump(jsonarray, outfile)

with open('list_of_dics.json', 'w') as outfile:
    json.dump(jsonarray, outfile)
有人能建议一种方法,以相同的格式将这些文件重新导入python吗?例如,字典列表?

您使用的不正确。您应该直接将
d
传递给它,而不是
json.dumps(d)
的输出。一旦这样做,您就可以使用来检索数据

with open('list_of_dics.txt', 'r') as infile:
    d = json.load(infile)
你用错了。您应该直接将
d
传递给它,而不是
json.dumps(d)
的输出。一旦这样做,您就可以使用来检索数据

with open('list_of_dics.txt', 'r') as infile:
    d = json.load(infile)

您已经(JSON-)将列表
d
编码为一个字符串(您将该字符串赋给一个错误地称为
jsonarray
)的变量)

您已经对该字符串进行了JSON编码,并将结果写入
outfile

因此,它现在(不必要地)在文件
list\u of_dics.txt
list\u of_dics.JSON
中进行了双重JSON编码

要从那里(无需求助)干净地获取它,您必须解码两次:

import json

with open('list_of_dics.json', 'r') as infile:
    recovered_d = json.loads(json.load(infile))

您已经(JSON-)将列表
d
编码为一个字符串(您将该字符串赋给一个错误地称为
jsonarray
)的变量)

您已经对该字符串进行了JSON编码,并将结果写入
outfile

因此,它现在(不必要地)在文件
list\u of_dics.txt
list\u of_dics.JSON
中进行了双重JSON编码

要从那里(无需求助)干净地获取它,您必须解码两次:

import json

with open('list_of_dics.json', 'r') as infile:
    recovered_d = json.loads(json.load(infile))

这里只是猜测一下,但通常如果库向json函数提供“encode”(
.dump
),它也会从json函数提供“decode”。您看过文档了吗?这里只是猜测一下,但通常如果库向json函数提供“encode”(在本例中为
.dump
),它也会从json函数提供“decode”(解码)。你检查过文档了吗?啊,明白了-这就是为什么我得到一个奇怪的输出。不过,为了澄清,使用
json.load(infle)
给了我一个unicode字符串。有没有办法直接将其作为DIC列表加载?没关系,明白了-只需从列表的开头和结尾删除
,即可取消格式设置。使用上述方法就可以完美地工作。啊,明白了-这就是为什么我会得到一个奇怪的输出。不过,为了澄清-使用
json.load(infle)
给我一个unicode字符串。有没有办法直接将其作为DIC列表加载?没关系,明白了-只需从列表的开头和结尾删除
,即可取消格式设置。那么,使用上述方法就完美了。