次の行を含む .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'
varのキーID
を認識していないようです。関数が実行される前に置くことでハッシュとしてtable2
宣言しようとしましたが、引き続きエラー メッセージが表示されます。table2
table2 = {}
返されたハッシュの値を変数に割り当てて、それらを使用して出力できるようにするにはどうすればよいkeys
ですか?