Python - 将条目拆分为数组

时间:2017-08-04 09:23:41

标签: python json split strip

我有一个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)

然后需要将值从字符串转换为数字。

我感谢任何帮助。

1 个答案:

答案 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已经解析了预期类型(intfloat)中的整数和浮点数。你不必手动重新解析它。

如果您需要配对并对其进行数学运算,请执行以下操作:

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
--------------------