Сортировать группы в файле JSON - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь собрать некоторую информацию из этой страницы JSON ('https://oa.ceair.com/common_source/airport/en_AU.json?v=1561031507803&_=1561031507712') и преобразовать ее в текстовый файл на локальном жестком диске. Более конкретно, мне нужны только строки, которые находятся на "match","label" и "value".

import os, re, requests
def getCity():

  url='https://oa.ceair.com/common_source/airport/en_AU.json? 
       v=1561031507803&_=1561031507712'
  response=requests.get(url,verify=True)
  city=re.findall('([A-Z]+)',response.text)
  city=str(city)
  write(city)

Используя приведенный выше код, информация успешно введена в другой текстовый файл, однако она содержит все необработанные данные.

1 Ответ

1 голос
/ 20 июня 2019

Поскольку это json , с ним легко работать.Запросы имеет встроенную поддержку для него.Метод ответа json возвращает dict, который мы можем легко использовать:

import requests

response = requests.get(r"https://oa.ceair.com/common_source/airport/en_AU.json?v=1561031507803&_=1561031507712", verify=True)
airports = response.json()

with open(r"airport_info.txt", "wt") as f:
    for airport in airports:
        f.write(f"match: {airport['match']}\n") # Literal string interpolation
        f.write(f"label: {airport['label']}\n") # See https://realpython.com/python-f-strings/
        f.write(f"value: {airport['value']}\n")

airport_info.txt выглядит следующим образом и идет для 1258 строк:

match: SYD,SYDNEY KINGSFORD SMITH APT,XiNiJinSiFuTe·ShiMiSiJiChang,XNJSFT·SMSJC
label: SYDNEY KINGSFORD SMITH APT, SYD
value: SYD
match: MEL,MELBOURNE,MoErBen,MEB
label: MELBOURNE, MEL
value: MEL

и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...