2016-07-14 4 views
0

Я следовал этот учебник по API, захватывая с питоном:захватывая апи словарь JSON с питоном

https://www.youtube.com/watch?v=pxofwuWTs7c

URL-адрес дает:

{"date":"1468500743","ticker":{"buy":"27.96","high":"28.09","last":"27.97","low":"27.69","sell":"27.97","vol":"41224179.11399996"}} 

Я пытался следовать видео и захватить «последние» данные.

import urllib2 
import json 

url = 'https://www.okcoin.cn/api/v1/ticker.do?symbol=ltc_cny' 
json_obj=urllib2.urlopen(url) 
data= json.load(json_obj) 
for item in data['ticker']:print item['last'] 

После ввода питон возвращается последняя строка:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: string indices must be integers 
+0

если вы просто делаете это в командной строке питона, нажмите снова войти. –

+0

отсутствует ссылка на учебник ... – Felix

+0

'' билет'' не является массивом, поэтому вы не можете перебирать его. – flazzarini

ответ

4

Я думаю, вы просто неправильно поняли полезную нагрузку, возвращаемый сервером. В этом случае ключ ticker не имеет типа list в словаре, преобразованном модулем json.

Так что вы должны сделать следующее

import urllib2 
import json 

url = 'https://www.okcoin.cn/api/v1/ticker.do?symbol=ltc_cny' 
json_obj = urllib2.urlopen(url) 
data = json.load(json_obj) 
print data['ticker']['last'] 
Смежные вопросы