Открыть. json файл из API - PullRequest
0 голосов
/ 30 мая 2020

может ли кто-нибудь предоставить код для открытия содержимого этого файла?

url = 'https://datos.madrid.es/egob/catalogo/202625-0-aparcamientos-publicos.json'

Я пробовал requests.get (url). json () , и я продолжаю получать следующую ошибку, не знаю, что я делаю:

JSONDecodeError: Ожидаемое значение: строка 1 столбец 1 (char 0)

1 Ответ

0 голосов
/ 30 мая 2020

Сервер ожидает заголовок User-Agent. Попробуйте:

import requests

url = 'https://datos.madrid.es/egob/catalogo/202625-0-aparcamientos-publicos.json'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0'}
response = requests.get(url, headers=headers)
print(response.json())

Вывод:

{'@context': {'c': 'http://www.w3.org/2002/12/cal#', 'dcterms': 'http://purl.org/dc/terms/', 'geo': 'http://www.w3.org/2003/01/geo/wgs84_pos#', 'loc': 'http://purl.org/ctic/infraestructuras/localizacion#', 'org': 'http://purl.org/ctic/infraestructuras/organizacion#', 'vcard': 'http://www.w3.org/2006/vcard/ns#', 'schema': 'https://schema.org/', 'title': 'vcard:fn', 'id': 'dcterms:identifier', 'relation': 'dcterms:relation', 'references': 'dcterms:references', 'address': 'vcard:adr', 'area': 'loc:barrio', 'district': 'loc :distrito', ...

Чтобы получить объект @graph, просто используйте обычный JSON синтаксический анализ:

print(response.json()['@graph'])

Или, если хотите в виде строки:

import json
...
print(json.dumps(response.json()['@graph']))

Или перебирать объекты графиков:

for graph in response.json()['@graph']:
    print(json.dumps(graph))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...