如何返回字典| Python

我有一个.txt文件,其中包含以下行:

23;巴勃罗;圣何塞
45;玫瑰马卡蒂

我有这个计划:

file=open(“C:/Users/renato/Desktop/HTML Files/myfile2.txt”)
def查询(id):
对于文件中的行:
表={}
(表[“ID”]、表[“名称”]、表[“城市”])=行分割(“;”)
如果id==int(表[“id”]):
file.close()文件
返回表
其他:
file.close()文件
返回{}
id=int(输入(“输入用户的id:”)
表2=查询(id)
打印(“ID:+table2[“ID”])
打印(“名称:”+表2[“名称”])
打印(“城市:+表2[“城市”])

所以(据我所说)发生的事情是:

文件已打开
创建一个名为table的散列,并将文件的每一行拆分为3个键/值。
如果用户输入的id与键id的值匹配,则关闭该文件
然后返回整个散列

然后,我将表2赋值给散列中的值,并尝试打印其中的值

当我运行此操作时,会得到以下结果:

回溯(最近一次呼叫最后一次):
文件“C:/Users/renato/Desktop/HTML Files/Python/hash2.py”,第17行,在<模块>
打印(“ID:+table2[“ID”])
KeyError:'ID'

似乎它无法识别table2var上的键ID。我还尝试在函数执行之前将table2={}放入哈希,将table2声明为哈希,但它会继续显示错误消息

如何将返回的哈希值分配给变量,以便使用它们的键打印它们

发生的情况是,您在文件的第一行与您要查找的id不匹配后立即返回。你必须这样做:

定义查询(id):
对于文件中的行:
表={}
(表[“ID”]、表[“名称”]、表[“城市”])=行分割(“;”)
如果id==int(表[“id”]):
file.close()文件
返回表
#未找到ID;关闭文件并返回空的dict
file.close()文件
返回{}

发表评论