Страницы

Поиск по вопросам

понедельник, 10 февраля 2020 г.

Как сохранить принятые json данные?

#python #json


Помогите разобраться. Все перепробовал и не как не могу сохранить принятые данные
в файл. Вот код:

def url():
    response = requests.get('https://btc-e.nz/api/3/ticker/usd_rur')
    print(response.json())

    


Ответы

Ответ 1



Если вам не нужно проверять, что сервер вернул именно JSON формат, то метод .json() можно не вызывать, а сразу сохранить ответ на диск: #!/usr/bin/env python import shutil import requests url = 'https://httpbin.org/get' r = requests.get(url, stream=True) r.raise_for_status() r.raw.decode_content = True # support Content-Encoding e.g., gzip with open('response.json', 'wb') as file: shutil.copyfileobj(r.raw, file) # copy in chunks, it works for large files Код с r.json() загружает JSON документ с http-сервера, распознаёт его целиком в памяти и тут же сохраняет на диск: #!/usr/bin/env python3 import json import requests url = 'https://httpbin.org/get' r = requests.get(url) r.raise_for_status() data = r.json() # do not create the result file until json is parsed with open('response.json', 'w', encoding='utf-8') as file: json.dump(data, file, indent=2, ensure_ascii=False) Опции indent=2, ensure_ascii=False использованы, чтобы для улучшить читаемость для людей. Первый вариант меньше работы выполняет (и меньше проверок). Второй вариант гарантирует, что ответ как JSON распознать можно и поэтому вероятно является предпочтительным, если особых требований нет.

Ответ 2



Попробуйте через json.dump сохранить в файл: import json with open('data.txt', 'w') as outfile: json.dump(response.json(), outfile)

Ответ 3



Вот так надо - def url(): response = requests.get('https://btc-e.nz/api/3/ticker/usd_rur') example = response.json() print(example)

Комментариев нет:

Отправить комментарий