从.dat fi导入词典

2024-10-01 19:28:05 发布

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

我有一个.txt文件,其中有一个国家的列表,以及用逗号分隔的国家信息。我的问题是使用该文件创建一个字典,然后将该字典保存到pickle.dat文件中,最后导入该字典,以便用户可以搜索国家名称并打印信息。在

我想我创建了字典并正确地将其保存到dat文件中,我在导入和搜索字典时遇到了问题。 这是我创建和保存字典的代码:

    natDict = {}
with open("UN.txt","r") as filestream:
    for line in filestream:
        currentLine = line.split(",")
        newC = Nation(currentLine[0],currentLine[1],float(currentLine[2]),float(currentLine[3])) #creats new Nation object
        natDict[currentLine[0]] = newC

with open('nationsDict.dat', 'wb') as handle:
    pickle.dump(natDict, handle, protocol=pickle.HIGHEST_PROTOCOL)

现在我要创建一个新程序,它使用国家词典.dat文件以便用户可以搜索国家/地区。我对腌制的dat文件没有任何经验,我的老师的演讲幻灯片也没有提到这些文件。我想我必须导入dat文件,然后再把它变成字典,这样用户就可以搜索它了,我只是不知道该怎么做。在

//编辑 很抱歉,这个问题有点不清楚,我会尽量提供更多的信息。 我为每个国家创建了一个对象,这样字典就类似于{CountryName:CountryObject}。在

^{pr2}$

在联合国.txt文件的设置如下:
阿富汗,亚洲,31.8251772
阿尔巴尼亚,欧洲,3.011100
阿尔及利亚,非洲,38.3919595
安道尔,欧洲,085181
安哥拉,非洲,19.1481354

联合国的所有国家都在档案里。在

我只需要知道如何使用国家词典.dat用于搜索项目的文件。我在里面放了一本字典,那么我能不能把它导入来,像它还是一本字典一样使用它呢?还是必须用.data文件中的信息重新创建词典。 希望这有帮助。在


Tags: 文件用户txt信息字典aswithopen
1条回答
网友
1楼 · 发布于 2024-10-01 19:28:05

是的,打开.dat文件,将数据(使用pickle.load方法)导入变量。您还需要将您的import类导入到新程序中,否则会出现错误。在

编辑: 您只需保存对象,每次对每个对象调用pickle.dump方法,然后一次加载一个对象。pickle将为您处理类型。但是,如果您正在加载自己的类型(用class定义),则该类的源代码必须可用,否则会出现错误,并且需要将这些类导入到加载脚本中。在

请参阅此处的简单示例和说明: https://wiki.python.org/moin/UsingPickle

相关问题 更多 >

    热门问题