Неудачное время получения данных URL для добавления в CSV. На минуту. - PullRequest
0 голосов
/ 17 ноября 2018

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

  • Описание кодов намерения, строка за строкой ниже.

    1. Первая строка кода извлекает данные JSON как pandas df
    2. Следующая строка поворачивает таблицу с ценой в качестве основных чисел, которые воплощают таблицу, отбрасывая ненужные номера спроса и предложения.
    3. В-третьих, df сохраняется как CSV
    4. Наконец, этот сохраненный CSV считывается обратно как df с информацией о метке времени в качестве индекса, а затем форматируется как дата и время.

Далее, то, что делается бесконечно (в то время как Истина), это то, что URL-адрес вызывается снова, и тот же процесс выполняется до нового df, как в df2. Затем это добавляется после периода ожидания пятнадцать секунд.

Все это работает как положено и нормально

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=KEY')
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=KEY')
  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]

  currmin = datetime.datetime.now()
  x = currmin.strftime('%M')

  print(df)
  print(x)
  print(y)
  time.sleep(15)

Ниже приведен пример вывода кода выше: output of the code

Это выход, когда df запускается ниже. df output

...