0

我有以下字典

{"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
{"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]}

我在比较两个班次(即白天和黑夜)时遇到问题?有什么方法可以比较这些变化。抱歉,如果问题似乎无关紧要。

4

2 回答 2

0

如果要成对比较相同键的值,可以从以下方法开始:

dict1, dict2 = {"data":[{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
    ...: {"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]}['data']

如果您确定 dicts 具有相同的键,您可以像这样成对比较它们:

[ (k,dict1[k]==dict2[k]) for k in dict1.keys()]

Out: 
[('shift', False),
 ('bus_type', False),
 ('seat_price_for_travel_agent', True),
 ('seat_price_for_user', True),
 ('seat_price_for_foreigner', True)]
于 2021-04-07T09:05:53.963 回答
0

遍历字典几乎与遍历列表相同。您可以使用该zip()函数创建元组,以便一次轻松访问两个数据结构的项目。.items()分别使用.keys().values()

dic = {
    "data":
    [{"shift":"day","bus_type":"ac","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"},
   {"shift":"night","bus_type":"deluxe","seat_price_for_travel_agent":"900","seat_price_for_user":"1000","seat_price_for_foreigner":"1100"}]
}

访问完整的字典条目:

for (day, night) in zip(dic["data"][0].items(), dic["data"][1].items()):
    print(day)
    print(night)

会给你:

('shift', 'day')
('shift', 'night')
('bus_type', 'ac')
('bus_type', 'deluxe')
('seat_price_for_travel_agent', '900')
('seat_price_for_travel_agent', '900')
('seat_price_for_user', '1000')
('seat_price_for_user', '1000')
('seat_price_for_foreigner', '1100')
('seat_price_for_foreigner', '1100') 

仅访问键(相当于省略.keys()):

for (day, night) in zip(dic["data"][0].keys(), dic["data"][1].keys()):
    print(day)
    print(night)

会给你:

shift
shift
bus_type
bus_type
seat_price_for_travel_agent
seat_price_for_travel_agent
seat_price_for_user
seat_price_for_user
seat_price_for_foreigner
seat_price_for_foreigner

仅访问值:

for (day, night) in zip(dic["data"][0].values(), dic["data"][1].values()):
    print(day)
    print(night)

会给你:

day
night
ac
deluxe
900
900
1000
1000
1100
1100

我想你可以从那里拿走它。

于 2021-04-07T09:14:52.087 回答