【问题标题】:Print particular key value based on the user input from list of dictionaries根据字典列表中的用户输入打印特定的键值
【发布时间】:2018-07-24 11:32:11
【问题描述】:

我想从字典数据库列表中打印“帐号”和“账户余额”。首先,我已经验证了数据库中的用户输入,如名字、姓氏和出生日期,但现在我不知道如何通过根据用户输入过滤列表中的字典来打印其其他值。这是我的代码:

 import re
    import datetime
    from datetime import date
    from collections import defaultdict
    from operator import itemgetter
    userDetails=[]


    accountDetails = [
                        {"FirstName": "JOHN", "LastName": "DENIS","date of Birth": "01-06-1992", "Account Number": "432524352345234", "Account Balance": "50000"},
                        {"FirstName": "AKASH", "LastName": "MAHAJAN", "date of Birth": "04-02-1995","Account Number": "43252435242342", "Account Balance": "100000"},
                        {"FirstName": "AMAN", "LastName": "RANA","date of Birth": "11-04-1996", "Account Number": "432524324234424", "Account Balance": "60000"},]
                        ]

  firstName=str(input("Enter First Name").upper())

    def isDuplicate(value, fieldName, database):
                        for entry in database:

                          if fieldName in entry and entry[fieldName] == value:

                                return True
                        else:
                                return False
     while True:  

           if(isDuplicate(firstName, "FirstName", accountDetails))==True:

                            userDetails.append(firstName)
                            break

                      else:
                            print('Enter valid First Name')
                            firstName=str(input("Enter First Name").upper())


    lastName=str(input("Enter Last Name").upper())
    #LASTNAME=firstName.upper()
    isDuplicate(lastName, "LastName", accountDetails)
    while True:  

           if(isDuplicate(lastName, "LastName", accountDetails))==True:
                            print("entered correct lastname")
                            userDetails.append(lastName)
                            break


           else:
                            print('Enter valid last Name')
                            lastName=str(input("Enter last Name"))

    dateOfBirth=str(input("Enter date of birth"))
    while True:  

           if(isDuplicate(dateOfBirth, "date of Birth", accountDetails))==True:
                            print("entered correct date of birth")
                            userDetails.append(lastName)

                            break

                      else:
                            print('Enter valid date of birth')
                            dateOfBirth=str(input("Enter date of birth"))
    def printRequiredUserInfo(FirstName,AccountNumer,Accountbalance,Database):
            for entry in Database:

                if entry.get("FirstName")=FirstName:

                      print("Your Account number is "+ entry[AccountNumer])
                      print("Your Account balance is "+ entry[Accountbalance])
    printRequiredUserInfo(firstName,"Account Number","Account Balance",accountDetails)

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:
    for x in accountDetails:
        if (x["FirstName"]==firstName) and (x["LastName"]==lastName) and (x["date of Birth"]==dateOfBirth):
            print(x["Account Number"]," ",x["Account Balance"])
    

    【讨论】:

    • 考虑在您的答案中添加更多内容,以解释您的解决方案为何有效。这样,它将帮助该网站的未来访问者!
    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2021-08-14
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多