我有一个 .txt 文件,其中包含以下几行:
23;Pablo;SanJose
45;Rose;Makati
我有这个程序:
file = open("C:/Users/renato/Desktop/HTML Files/myfile2.txt")
def query(id):
for line in file:
table = {}
(table["ID"],table["name"],table["city"]) = line.split(";")
if id == int(table["ID"]):
file.close()
return table
else:
file.close()
return {}
id = int(input("Enter the ID of the user: "))
table2 = query(id)
print("ID: "+table2["ID"])
print("Name: "+table2["name"])
print("City: "+table2["city"])
所以发生的事情(根据我)是:
文件被打开创建一个名为的哈希table
,文件的每一行被分成3个键/值。如果id
用户输入的值与 key 的值匹配ID
,则关闭文件并返回整个哈希。
然后,我table2
在散列上分配值,table
并尝试在其中打印值。
当我运行它时,我得到以下信息:
Traceback (most recent call last):
File "C:/Users/renato/Desktop/HTML Files/Python/hash2.py", line 17, in <module>
print("ID: "+table2["ID"])
KeyError: 'ID'
似乎它没有识别varID
上的键。table2
我还尝试通过在执行函数之前将其声明table2
为哈希table2 = {}
,但它继续显示错误消息。
如何将返回的哈希值分配给变量,以便我可以使用它们的keys
?