Python 从Bittrex解析JSON
我有以下代码:Python 从Bittrex解析JSON,python,json,urllib,Python,Json,Urllib,我有以下代码: import urllib2 import json from matplotlib.finance import candlestick2_ohlc import matplotlib.pyplot as plt import matplotlib.ticker as ticker import datetime as datetime import numpy as np import csv l = [] date = [] date_intermediaire = []
import urllib2
import json
from matplotlib.finance import candlestick2_ohlc
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import datetime as datetime
import numpy as np
import csv
l = []
date = []
date_intermediaire = []
response = urllib2.urlopen('https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-ETH&tickInterval=thirtyMin&_=')
data = json.load(response)
其中,data['result'][:]['T']
包含时间,data['result'][:]['V']
包含卷,data['result'][i]['O']
包含打开部分,data['result'][i]['C']
包含关闭部分,data['result']['L']
包含低位,data['result']['H']
包含高位
实际上,我想让定义r变得更容易,就像这样:
r['date'][i] = data['result'][i]['T']
r['open'][i] = data['result'][i]['O']
r['close'][i] = data['result'][i]['C']
r['max'][i] = data['result'][i]['H']
r['min'][i] = data['result'][i]['L']
r['volume'][i] = data['result'][i]['V']
但是我不知道如何在Python中做到这一点。您想在这里“减少”数据。您可以在这里使用,但只编写自己的函数可能会更容易。循环遍历每个结果并将其附加到相关列的内容
def map_response(data):
retval = {
'date': [],
'open': [],
# ...
}
for result in data['result']:
retval['date'].append(result['T'])
retval['open'].append(result['O'])
# ...
return retval
您可能还可以通过描述映射来自动化这一点
def map_response(data):
mappings = {'T': 'date', 'O': 'open', '...': '...'}
retval = {val: [] for val in mappings.values()}
for result in data['result']:
for key, value: result.items():
retval[mappings[key]] = value
return retval
但对我来说,这看起来不太清楚,只是省去了重复。如果我理解正确,你不知道如何在解析的JSON中循环字典或列表
results = data['result']
r = []
for res in results:
value = {}
value['date']= res['T']
# TODO: Get other values
r.append(value)
您可以使用熊猫:
import pandas as pd
...
df = pd.DataFrame.from_dict(data['result'])
df.columns=['volume','close','max','min','open','date','last_column']
df.head()
输出:
volume close max min open date \
0 19.949007 0.056340 0.056560 0.056302 0.056340 2018-03-29T02:00:00
1 28.811991 0.056302 0.056540 0.056301 0.056350 2018-03-29T02:30:00
2 17.516028 0.056170 0.056488 0.056150 0.056302 2018-03-29T03:00:00
3 33.393220 0.056030 0.056450 0.056020 0.056450 2018-03-29T03:30:00
4 29.046574 0.055430 0.056140 0.055300 0.056030 2018-03-29T04:00:00
last_column
0 354.123891
1 511.145471
2 311.468766
3 594.549165
4 521.328565
这已经是解析字典的大部分有效Python代码。。。有什么问题吗?看来你有了numpy。。。。你也有熊猫吗?