我有一个JSON响应,它有2个部分我想要进行数值比较。我可以得到值,但我正在努力删除[]并将条目拆分为。我的字符串看起来像这样:
r = """{
"eth_btc":{
"asks":[
[103.426,0.01],
[103.5,15],
[103.504,0.425],
[103.505,0.1]
],
"bids":[
[103.2,2.48502251],
[103.082,0.46540304],
[102.91,0.99007913],
[102.83,0.07832332]
]
}
}"""
价值是"成本,数量"。我需要两个值,我想在ASKS和BIDS之间进行数值比较。
我需要摆脱容易的[],我也想用SPLIT分隔值,但是我很难将它们放入LIST。由于数据已经在字典中,或许我不需要做所有这些,但我不确定如何继续。
j = json.loads(r)
mylist = list()
for item in j['eth_btc']['asks']:
tempString = str(item).strip('[]')
mylist.append(tempString.split(','))
print (mylist)
然后需要将值从字符串转换为数字。
我感谢任何帮助。
答案 0 :(得分:0)
事实上,你不必在这做任何事情,json
为你做。
import json
j = json.loads(r)
mylist = list()
print j['eth_btc']['asks']
输出:
[[103.426, 0.01], [103.5, 15], [103.504, 0.425], [103.505, 0.1]]
json
已经解析了预期类型(int
和float
)中的整数和浮点数。你不必手动重新解析它。
如果您需要配对并对其进行数学运算,请执行以下操作:
for pair in j['eth_btc']['asks']:
print pair
print pair[0] * pair[1]
print '-' * 20
输出:
[103.426, 0.01]
1.03426
--------------------
[103.5, 15]
1552.5
--------------------
[103.504, 0.425]
43.9892
--------------------
[103.505, 0.1]
10.3505
--------------------