2016-11-02 15 views
1

私はneuralnetworkが学校プロジェクトを学ぶためにpoloniexから履歴データを取得するためのAPIを作成しようとしています。Python panda json_normalize how to

私はjsonファイルを戻しますが、問題はpoloinex_dfが "空"であることです。すべての情報がインデックス/列名の行にあります(ピクチャ、変数エクスプローラ)。何とか転記しようとしました。ここには、パンダにはこの機能があると伝えられています。私はドキュメンテーションを読んで、anserwsのためにここを見回しましたが、私が探していたものは全く見つかりませんでした。私は日付のようなインデックスを持つデータフレームを作成したいと思います。それ、どうやったら出来るの?ダウンロードしたデータから変数エクスプローラで

data_frame = json_normalize(poloinex_df, 'date' ,['high', 'low', 'open', 'close','volume','quoteVolume','weightedAverage']) 

Traceback (most recent call last):

File "", line 1, in data_frame = json_normalize(poloinex_df, 'date' ,['high', 'low', 'open', 'close','volume','quoteVolume','weightedAverage'])

File "C:\ToolBox\Anaconda2\lib\site-packages\pandas\io\json.py", line 761, in json_normalize _recursive_extract(data, record_path, {}, level=0)

File "C:\ToolBox\Anaconda2\lib\site-packages\pandas\io\json.py", line 747, in _recursive_extract recs = _pull_field(obj, path[0])

File "C:\ToolBox\Anaconda2\lib\site-packages\pandas\io\json.py", line 698, in _pull_field result = result[spec]

TypeError: string indices must be integers, not str

ピック:今、私はエラーを取得する

enter image description here私は、次のコードを持って

import chainer as chain 
import pandas as pd 
import numpy as np 
from matplotlib import pylab 
from pandas.io.json import json_normalize 

def get_poloinex_data(s, a, b, c): 

    import requests 
    from pandas import DataFrame 
    from io import StringIO 

    url = 'https://poloniex.com/public?command=returnChartData' 

    url += '&currencyPair=' + s #USDT for USD 
    url += '&start=' + a 
    url += '&end=' + b 
    url += '&period=' + c 

    csv = requests.get(url) 

    if csv.ok: 
     return DataFrame.from_csv(StringIO(csv.text), sep=',') #Separator here 
    else: 
     return None 

params = { 
    # specify stock 
    "s": 'USDT_ETH', # BTC_ETH, USDT_ETH stb 

    # query data from 
    'a': '1422230400',  # unix date stamp, 2015 jan 26 : 1422230400 

    # query until 
    'b': '1492905600',  # unix dates tamp, 2016 sep 23 : 1492905600 

    # frequency 
    'c': '14400'  # unix time stamp 
} 


poloinex_df = get_poloinex_data(**params) 
data_frame = json_normalize(poloinex_df, 'date' ,['high', 'low', 'open', 'close','volume','quoteVolume','weightedAverage']) 
#data_frame = json_normalize(poloinex_df.json()) 
#TransposedData = poloinex_df.transpose() 
#data_frame = json_normalize(resp.json()) 

をいただき、ありがとうございますあなたの助けと洞察

答えて

2
import pandas as pd 
import requests 

def get_poloinex_data(s, a, b, c): 

    url = 'https://poloniex.com/public?command=returnChartData' 

    url += '&currencyPair=' + s #USDT for USD 
    url += '&start=' + a 
    url += '&end=' + b 
    url += '&period=' + c 
    data = requests.get(url) 

    return data.content 

params = { 
    # specify stock 
    "s": 'USDT_ETH', # BTC_ETH, USDT_ETH stb 

    # query data from 
    'a': '1422230400',  # unix date stamp, 2015 jan 26 : 1422230400 

    # query until 
    'b': '1492905600',  # unix dates tamp, 2016 sep 23 : 1492905600 

    # frequency 
    'c': '14400'  # unix time stamp 
} 

poloinex_df = get_poloinex_data(**params) 
data_frame = pd.read_json(poloinex_df) 
+0

ありがとう、私は何とかread_jsonを見逃しました... –