Python字符串转换Json

时间:2014-03-24 02:43:12

标签: python json

我有一个python脚本,它给了我一个错误,我无法解决它。这是我的第一段代码,让您了解我在这里做的事情

orders = cexapi.current_orders('GHS/NMC')  
print(orders)

此代码运行正常并打印

[{u'price': u'2.1', u'amount': u'0.00000100', u'time': u'1395628131986', u'type': u'buy', u'id': u'567638429', u'pending': u'0.00000100'}]

我想在订单ID之后提取567638429,但它给我一个错误

ord = json.loads(orders['id'])  
TypeError: list indices must be integers, not str  

这是我用来尝试过滤结果的代码。

orders = cexapi.current_orders('GHS/NMC')   
ord = json.loads(orders['id'])  
print(ord)

3 个答案:

答案 0 :(得分:1)

我不熟悉您正在使用的库。但是order是一个只包含一个元素的列表,而one元素是一个字典。这就是打印输出或订单包含在[]中的原因。

ord = json.loads(orders[0]['id']

答案 1 :(得分:1)

看起来.current_orders的返回值已经被解码了,你不应该需要json.loads()它,只需索引它就可以获得你想要的值。

orders = cexapi.current_orders('GHS/NMC')
id = orders[0]['id']

答案 2 :(得分:0)

这是一个清单:

[{u'price': u'2.1', u'amount': u'0.00000100', u'time': u'1395628131986', u'type': u'buy', u'id': u'567638429', u'pending': u'0.00000100'}]

通过编写orders[n],您可以访问此列表的第n个元素。显然,n必须是一个正整数(并且不应超过列表中元素的数量)。

请尝试orders[0]['id']

orders[0]返回列表的第一个元素,然后像以前一样使用['id']