我正在创建一个程序,要求用户对字典进行更改。我可以使用普通字典来完成这些操作,但是建议我将数据保存在“子字典”中,如下所示。
我尝试看看是否可以通过更改每个条目中所有字段的值来使其工作,但即使这样似乎也不起作用。我对 python 很陌生,所以请耐心等待!
VDatabase = {
"1200033944833": {
'MAP' : 'XXXX',
'CODE' : '0123',
'Method': 'R',
'Code1': 'S093733736',
'Reg ID' : '01'
}
<小时/>
Search = input("Search ACCOUNT:")
tmp_dict = VDatabase.get(Search, None)
print(tmp_dict if tmp_dict else "No ACCOUNT Found. \"{}\"".format(Search))
VDatabase["CODE"] = input("Enter CODE:")
print("Changing CODE...")
我希望将 CODE 的值更改为用户输入的值。
不幸的是,它没有做任何事情,我可以更改常规字典,所以我认为这是因为它是一个“子字典”,所以我将如何访问这些值?
最佳答案
在这行,
VDatabase["CODE"] = input("Enter CODE:")
您正在尝试直接在 VDatabase 中更改“CODE”的值,但不在您搜索的子词典中更改。
Search = str(input("Search ACCOUNT:"))
tmp_dict = VDatabase.get(Search, None)
print(tmp_dict if tmp_dict else "No ACCOUNT Found. \"{}\"".format(Search))
VDatabase[Search]["CODE"] = str(input("Enter CODE:"))
print(VDatabase[Search])
或者
tmp_dict['CODE'] = str(input("输入代码:"))
您将看到主词典已更改。
我已将输入类型更改为 str,以便搜索时值不会是整数。
关于python - 通过用户输入编辑词典 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55968996/