[英]Python - Extracting information from dictionary in a specific way
我正在嘗試從字典中提取某些值並以特定方式顯示它。 我將在下面向您展示我的代碼示例:
dict = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email': 'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
{'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
{'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]
那是我的字典。 我想要的輸出是:
Titel, Starttime,
Surname, Name, Email
所以它看起來像這樣:
Rush, 20:30,
Cake, Floris, Floris@email.com
Pie, Jaron, JaronPie@email.com
Underneath, 04:00,
Klassie, Klaas, Klassieboy@gmail.com
感謝VKS:P我用VKS的代碼來構建它
碼:
from itertools import groupby
k = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email': 'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
{'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
{'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]
lst=[(i["Titel"],i["Starttime"],i["Surname"],i.get("Name","None"), i["Email"]) for i in k]
lst.sort(key=lambda x:(x[0],x[1]))
for key,groups in groupby(lst,key=lambda x:(x[0],x[1])):
print "{}\t{}".format(key[0],key[1])
for value in groups:
print "{}\t{}\t{}".format(value[2],value[3],value[4])
print ""
輸出:
Rush 20:30
Cake Floris Floris@email.com
Pie None JaronPie@email.com
Underneath 04:00
Klassie Klaas Klassieboy@gmail.com
k = [{'Titel': 'Rush', 'Name': 'Floris', 'Starttime': '20:30', 'Email': 'Floris@email.com', 'Supplier': 'RTL8', 'Surname': 'Cake', 'Code': 'ABC123'},
{'Titel': 'Rush', 'Voornaam': 'Jaron', 'Starttime': '20:30', 'Email': 'JaronPie@email.com', 'Supplier': 'RTL8', 'Surname': 'Pie', 'Code': 'XYZ123'},
{'Titel': 'Underneath', 'Name': 'Klaas', 'Starttime': '04:00', 'Email': 'Klassieboy@gmail.com', 'Supplier': 'RTL8', 'Surname': 'Klassie', 'Code': 'fbhwuq8674'}]
print [(i["Titel"],i["Starttime"],i["Surname"], i["Email"]) for i in k]
您可以使用它,您將獲得所需的所有信息的tuple
。
def print_my_d(d):
print(d[0]['Titel'], d[0]['Starttime'])
for l in d[:2]:
print(l['Surname'], l['Name'], l['Email'])
print()
print(d[2]['Titel'],d[2]['Starttime'])
print("{}, {}, {}".format(d[2]['Surname'],d[2]['Name'], d[2]['Email']))
print_my_d(d)
Rush 20:30
Cake Floris Floris@email.com
Pie Jaron JaronPie@email.com
Underneath 04:00
Klassie, Klaas, Klassieboy@gmail.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.