मैं इसमें निम्नलिखित लाइनों के साथ एक .txt फ़ाइल है:शब्दकोश को वापस कैसे करें अजगर
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"])
तो क्या हुआ (मेरे हिसाब से) हो रहा है है:
फ़ाइल
23;Pablo;SanJose
45;Rose;Makati
मैं इस कार्यक्रम है खोला गया है table
नामक हैश बनाया गया है और फ़ाइल की प्रत्येक पंक्ति को 3 कुंजी/मानों में विभाजित किया गया है। यदि उपयोगकर्ता द्वारा दर्ज किया गया id
कुंजी 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'
ऐसा लगता है जैसे कि यह table2
वर पर कुंजी ID
पहचानने नहीं कर रहा है:
जब मैं इस चलाने के लिए, मैं निम्नलिखित मिलता है। मैंने फ़ंक्शन निष्पादित होने से पहले table2 = {}
डालकर table2
को हैश के रूप में घोषित करने का भी प्रयास किया, लेकिन यह त्रुटि संदेश प्रदर्शित करना जारी रखता है।
मैं एक परिवर्तनीय हैश के मानों को एक चर में कैसे आवंटित करूं, ताकि मैं उन्हें keys
का उपयोग करके प्रिंट कर सकूं?
आप केवल फ़ाइल की पहली पंक्ति क्यों देख रहे हैं? – user2357112
मुझे समझ में नहीं आता कि आपका क्या मतलब है, मैं फाइल के सभी लाइनों को देखने के लिए लूप के लिए उपयोग कर रहा हूं। – pgonzaleznetwork
आप दूसरी बार देखने का मौका मिलने से पहले, पहले पुनरावृत्ति में वापस आते हैं, इससे कोई फर्क नहीं पड़ता। – user2357112