Помогите разобраться. Все перепробовал и не как не могу сохранить принятые данные в файл. Вот код:
def url():
response = requests.get('https://btc-e.nz/api/3/ticker/usd_rur')
print(response.json())
Ответ
Если вам не нужно проверять, что сервер вернул именно 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 распознать можно и поэтому вероятно является предпочтительным, если особых требований нет.
Комментариев нет:
Отправить комментарий