Нужно заходит на API (GET), получать тело и сохранять в текстовые файли
Нужно заходит на API (GET), получать тело и сохранять в текстовые файлики, идеально если заходить на 2 API и 2 файла в одном скрипте, повторять каждые N секунд,пытался с pycurl
import pycurl
from io import BytesIO
b_obj = BytesIO()
crl = pycurl.Curl()
crl.setopt(crl, 'https://dapi.binance.com/dapi/v1/ticker/price?Symbol=BTCUSD_200925')
crl.setopt(crl.WRITEDATA, b_obj)
crl.perform()
crl.close()
get_body = b_obj.getvalue()
print('Output of GET request:\n%s' % get_body.decode('utf8'))
но ошибка на crl.perform()
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
Если библиотека requests еще не установлена то pip install requests
import json
import os
import requests
if __name__ == '__main__':
response = requests.get('https://dapi.binance.com/dapi/v1/ticker/price?Symbol=BTCUSD_200925')
if response.status_code == 200:
# Если вам нужно сохранять предыдущие значения
# Считываем предыдущие значения если файл с ними существует
exists_values = []
if os.path.exists('./some_file.json'):
exists_values = json.load(open('./some_file.json', 'r', encoding='utf-8'))
# Добавляем новые
exists_values += response.json()
# записываем обратно в файл
json.dump(
exists_values,
open('./some_file.json', 'w', encoding='utf-8'),
ensure_ascii=False
# Если в ответе с гарантией не будет спец символов и чего нибудь не ascii то параметр можно опустить
# хотя это еще зависит от того, где будут потом использоваться эти данные, а то и обязательно его убрать может быть нужно
)
# если предыдущие значения сохранять не нужно то пропускаем блок где мы считывали предыдущие значения и добавляли к ним новые и просто :
# json.dump(
# response.json(),
# open('./some_file.json', 'w', encoding='utf-8'),
# ensure_ascii=False
# Если в ответе с гарантией не будет спец символов и чего нибудь не ascii то параметр можно опустить
# хотя это еще зависит от того, где будут потом использоваться эти данные, а то и обязательно его убрать может быть нужно
# )