Присоединение и / или запись в CSV из извлеченных данных JSON - PullRequest
0 голосов
/ 08 ноября 2018

Код, написанный ниже, предназначен для извлечения данных JSON из указанного URL (я удалил ключ).Затем я отформатировал и изменил на CSV.Когда эта программа запускается и печатается, я вижу первую выбранную строку, но последующие строки, которые я хочу добавить, добавляются только в первую строку (df), а не компилируются в следующую.Есть ли простой способ сделать это?Чтобы после каждого периода time.sleep () строка добавлялась к предыдущему периоду сна, а не к исходному df.

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')

x = range(6)
for n in x:

  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')
  df3 = df.append(df2)
  time.sleep(1)
  print(df3)  

Пример входных входных данных JSON:

[{"symbol": "EURUSD", "bid": 1.13913, "ask": 1.13913, "price": 1.13913, "timestamp": 1541703878}, {"symbol": "EURJPY", "предложение": 129,75, "спросить": 129.753, "цена": 129.7515, "метки времени": 1541703878}, { "символ": "GBPUSD", "предложение": 1,30907, "спросить": 1.30908, "цена": 1.30907, "timestamp": 1541703878}, {"symbol": "USDCAD", "bid": 1.31059, "ask": 1.31059, "price": 1.31059, "timestamp": 1541703878}]

Ниже приведен вывод этого кода выше.

                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:06  129.8610  1.14359  1.31276  1.31167
                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:08  129.8605  1.14359  1.31277  1.31163
                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:09  129.8660  1.14362  1.31278  1.31156
                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:10  129.8725  1.14363  1.31289  1.31155
                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:12  129.8750  1.14363  1.31289  1.31155
                       EURJPY   EURUSD   GBPUSD   USDCAD
timestamp                                               
2018-11-08 00:06:06  129.8615  1.14359  1.31276  1.31167
2018-11-08 00:06:13  129.8735  1.14363  1.31289  1.31155

1 Ответ

0 голосов
/ 09 ноября 2018

Вы накапливаете данные неверным образом, потому что вы добавляете в каждом раунде первую строку (df) к только что выбранной строке (df2).

Результат добавления в каждом раунде (df3) перезаписывается и теряется в конце каждого раунда.

Что по этому поводу:

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')

x = range(6)
for n in x:

  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')
  df = df.append(df2)
  time.sleep(1)
  print(df)  

т.е.. просто определяя df как добавление самого себя и только что выбранную новую строку (df2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...