Python中如何根据用户名从文本文件生成的嵌套字典中提取指定字典
代码修改方案
你只需要在循环中增加用户名匹配判断即可,以下是修改后的可运行代码:
keys = ["Full Name", "Date of Birth", "Phone Number", "Identification Card (IC) Number", "Emergency Contact Number", "Credit /Debit Card Details "] username = "jiken" with open("something.txt", 'r') as f: for line in f: key, values = line.strip().split(" = ") # 匹配到目标用户名再进行后续处理 if key == username: values = values.split('|') data2 = {key: dict(zip(keys, values[1:]))} print(data2) # 匹配到后可以直接终止循环,不需要再读取后面的行,提升运行效率 break
如果后续需要频繁查询不同用户的信息,也可以先把所有用户数据存入总字典再按需取值,参考实现如下:
keys = ["Full Name", "Date of Birth", "Phone Number", "Identification Card (IC) Number", "Emergency Contact Number", "Credit /Debit Card Details "] username = "jiken" user_data = {} # 先把所有用户数据读取存入总字典 with open("something.txt", 'r') as f: for line in f: key, values = line.strip().split(" = ") values = values.split('|') user_data[key] = dict(zip(keys, values[1:])) # 按需查询目标用户 print({username: user_data[username]})
两种写法都可以实现你需要的输出效果。
内容的提问来源于stack exchange,提问作者Suits MyStyle
相关产品推荐
相关产品推荐

