我有一个.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文件中的信息重新创建词典。 希望这有帮助。在
是的,打开
.dat
文件,将数据(使用pickle.load
方法)导入变量。您还需要将您的import
类导入到新程序中,否则会出现错误。在编辑: 您只需保存对象,每次对每个对象调用
pickle.dump
方法,然后一次加载一个对象。pickle
将为您处理类型。但是,如果您正在加载自己的类型(用class
定义),则该类的源代码必须可用,否则会出现错误,并且需要将这些类导入到加载脚本中。在请参阅此处的简单示例和说明: https://wiki.python.org/moin/UsingPickle
相关问题 更多 >
编程相关推荐