#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)
Комментариев нет:
Отправить комментарий