【问题标题】:How to compare the values of two cycles? Python如何比较两个周期的值? Python
【发布时间】:2019-02-19 00:24:42
【问题描述】:

我有两个周期:

第一个循环

import json

tickets = json.loads(response_body)

for airport, flights in tickets['data'].items():
    print('airport:', airport)

指一个json(这是一部分)

{"success":true,"data":{"AAE":{"2":{"price":48973,"airline":"AF","flight_number":1745,"departure_at":"2018-09-04T18:45:00Z","return_at":"2018-09-14T07:15:00Z","expires_at":"2018-09-02T06:57:21Z"},"3":{"price":67240,"airline":"TP","flight_number":1235,"departure_at":"2018-09-04T07:15:00Z","return_at":"2018-09-14T07:15:00Z","expires_at":"2018-09-02T06:57:21Z"}},"AAH":{"1":{"price":34049,"airline":"LH","flight_number":1453,"departure_at":"2018-09-30T09:05:00Z","return_at":"2018-10-02T07:40:00Z","expires_at":"2018-09-03T11:37:06Z"},"2":{"price":35838,"airline":"LH","flight_number":1453,"departure_at":"2018-09-30T09:05:00Z","return_at":"2018-10-02T11:39:00Z","expires_at":"2018-09-03T11:37:06Z"}},"AAL":{"1":{"price":23258,"airline":"KL","flight_number":904,"departure_at":"2018-12-08T18:00:00Z","return_at":"2018-12-15T06:00:00Z","expires_at":"2018-09-03T13:27:58Z"},"2":{"price":21867,"airline":"AF","flight_number":1745,"departure_at":"2018-12-08T20:00:00Z","return_at":"2018-12-15T18:15:00Z","expires_at":"2018-09-03T13:27:58Z"},"3":{"price":30639,"airline":"AF","flight_number":1145,"departure_at":"2018-12-08T09:45:00Z","return_at":"2018-12-15T06:00:00Z","expires_at":"2018-09-03T13:27:58Z"}},"AAQ":{"0":{"price":5354,"airline":"FV","flight_number":5515,"departure_at":"2018-09-16T04:20:00Z","return_at":"2018-10-04T12:40:00Z","expires_at":"2018-08-31T20:53:40Z"},"1":{"price":8590,"airline":"FV","flight_number":5515,"departure_at":"2018-09-16T04:20:00Z","return_at":"2018-10-04T15:05:00Z","expires_at":"2018-08-31T20:53:40Z"},"2":{"price":13702,"airline":"U6","flight_number":79,"departure_at":"2018-10-04T11:20:00Z","return_at":"2018-10-10T12:40:00Z","expires_at":"2018-09-03T06:47:01Z"}},"AAR":{"1":{"price":24418,"airline":"OK","flight_number":905,"departure_at":"2018-09-19T22:10:00Z","return_at":"2018-09-25T09:35:00Z","expires_at":"2018-09-02T21:16:33Z"},"2":{"price":20805,"airline":"AY","flight_number":712,"departure_at":"2018-09-19T11:50:00Z","return_at":"2018-09-25T16:55:00Z","expires_at":"2018-09-02T21:16:33Z"},"3":{"price":36316,"airline":"BT","flight_number":425,"departure_at":"2018-09-19T09:45:00Z","return_at":"2018-09-25T09:35:00Z","expires_at":"2018-09-02T21:16:33Z"}}

然后从那里获取代码机场(ААЕ、ААН等)。

第二个循环

citys = json.loads(responce)

for h in citys:
    print(h['code'])
    print(h['name'])

引用另一个json

[{"code":"AAA","name":"Анаа","coordinates":{"lon":-145.41667,"lat":-17.05},"cases":{"ro":"","da":"","vi":"","tv":"","pr":""},"time_zone":"Pacific/Tahiti","name_translations":{"en":"Anaa"},"country_code":"PF"},{"code":"AAB","name":"Аррабури","coordinates":{"lon":141.04167,"lat":-26.7},"cases":{"ro":"","da":"","vi":"","tv":"","pr":""},"time_zone":"Australia/Brisbane","name_translations":{"en":"Arrabury"},"country_code":"AU"},{"code":"AAC","name":"Эль-Ариш","coordinates":{"lon":33.75,"lat":31.133333},"cases":{"ro":"Аль-Ариш","da":"Аль-Ариш","vi":"в Аль-Ариш","tv":"Аль-Ариш","pr":"Аль-Ариш"},"time_zone":"Africa/Cairo","name_translations":{"en":"El Arish"},"country_code":"EG"},{"code":"AAE","name":"Аннаба","coordinates":{"lon":7.811857,"lat":36.821392},"cases":{"ro":"Аннабы","da":"Аннабе","vi":"в Аннабу","tv":"Аннабой","pr":"Аннабе"},"time_zone":"Africa/Algiers","name_translations":{"en":"Annaba"},"country_code":"DZ"},

存储机场代码和城市名称。

我不明白如何比较收到的机场代码,以便在巧合的情况下获得城市名称

【问题讨论】:

    标签: python json python-3.x for-loop


    【解决方案1】:

    如果我理解正确,您需要使用difflib 库。我可能错了。但无论如何,让我尝试建议。

    现在我也在试图弄清楚如何比较两个文本文件,但据我所知,可以使用以下方法比较一行文本:

    Differ(),但我还没有完全弄清楚如何正确使用它。它比较行并显示:删除的行、新行和修改的行。可以导出到单独的文件中。

    在你的情况下,我可能会尝试使用difflib.Differ()

    编辑:但是看看你的 jsons 来比较,有很多不同的行,所以你会收到很多不需要的行。

    【讨论】:

    • 谢谢。我会看到
    【解决方案2】:

    您可以将值保存在按城市/机场代码索引的字典中。 my_dic ={}

    然后,在第一个循环中, my_dic[airport_code] = 机场

    在第二个循环中,您可以使用您拥有的代码在 dic 中查找元素:

    my_dic[城市代码]

    如果密钥不存在,则会引发异常。您可以使用 my_dic.get(city_code) 如果密钥不存在则返回 None

    【讨论】:

    • 谢谢。我会尝试,但到目前为止有些东西不起作用
    猜你喜欢
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2020-12-28
    • 2011-01-13
    相关资源
    最近更新 更多