Сроки поиска данных JSON и добавления в CSV.Минута за минутой.asyncio? - PullRequest
0 голосов
/ 18 ноября 2018

Цель приведенного ниже кода - получить данные из URL. (Код представляет собой данные Forex. Он представлен в формате JSON.) Через некоторое время данные добавляются и сохраняются в CSV. В приведенном ниже коде есть функция time.sleep (), которая предназначена для проверки работоспособности добавления. Пока True: логику я хочу заменить сравнительной логикой из переменных (x, y). (Это реальное текущее минутное время (x) и минута, указанная в последней отметке времени, которая была получена из добавленного и индексированного URL-адреса получения (y)). Я не выяснил, как заставить это работать, потому что я не понял, как обновить значения переменных, пока циклы работают. Я думаю, что asyncio может достичь цели, состоящей в том, чтобы код извлекался, добавлялся и сохранялся каждую минуту, каждую минуту. Я попробовал модуль расписания, у которого есть проблемы с несоответствием.

Описание функции кодов ниже:

-В первой строке кода читается JSON из URL и помещается в df. Следующая строка поворачивает данные, чтобы пара форекс была столбцами, а метка времени - индексом, а цена - числами, которые заполняют соответствующее соответствие. Затем df сохраняется как CSV. После этого csv считывается обратно в df, и временная метка снова индексируется и форматируется как формат даты и времени.

-Тогда в цикле while True: процесс повторяется, как описано выше, на этот раз с новым df, который затем добавляется к исходному df после периода time.sleep ().

-Наконец, есть две переменные, созданные и назначенные (x, y). Это реальная текущая минута (x) и минута, указанная в последней отметке времени, полученной из URL (y).

import pandas as pd
from datetime import datetime
import datetime
import numpy as np 
import csv
import matplotlib
import time
import datetime
import asyncio 

df = pd.read_json('https://forex.1forge.com/1.0.3/quotes?pairs=EURUSD,EURJPY,GBPUSD,USDCAD,&api_key=KFN4h4JrcssC0dgQR3iBVo6eHYkuiVuy')
df = df.pivot_table('price', 'timestamp', 'symbol')
df.to_csv('datapull.csv')
df = pd.read_csv('datapull.csv', index_col='timestamp', parse_dates=['timestamp'])

while True:

  df2 = pd.read_json('https://forex.1forge.com/1.0.3/quotes?pairs=EURUSD,EURJPY,GBPUSD,USDCAD,&api_key=KFN4h4JrcssC0dgQR3iBVo6eHYkuiVuy')
  df2 = df2.pivot_table('price', 'timestamp', 'symbol')
  df2.to_csv('datapull2.csv')
  df2 = pd.read_csv('datapull2.csv', index_col='timestamp', parse_dates=['timestamp'])
  df = df.append(df2)

  y = df.index.strftime('%M')[-1]
  print(y)
  currmin = datetime.datetime.now()
  x = currmin.strftime('%M')
  print(x)
  print(df)  
  time.sleep(15)

Ниже приведен пример вывода кода при запуске и соответствующий df. Спасибо.

Output of code.

df

...