提取数据json python

时间:2019-05-06 16:03:30

标签: python json

我尝试从中解析json:

{
  "lastUpdateId": 78772216,
  "bids": [
    [
      "0.00000421",
      "133090.00000000"
    ],
    [
      "0.00000420",
      "345637.00000000"
    ],
    [
      "0.00000419",
      "84680.00000000"
    ],
    [
      "0.00000418",
      "127899.00000000"
    ],
    [
      "0.00000417",
      "175359.00000000"
    ]
  ],
  "asks": [
    [
      "0.00000422",
      "324731.00000000"
    ],
    [
      "0.00000423",
      "323497.00000000"
    ],
    [
      "0.00000424",
      "86010.00000000"
    ],
    [
      "0.00000425",
      "207321.00000000"
    ],
    [
      "0.00000426",
      "161378.00000000"
    ]
  ]
}

但总是有一些问题。

我尝试:

from binance.client import Client
import json

api_key = "..."
api_secret = "..."
client = Client(api_key, api_secret)

depth = client.get_order_book(symbol='QKCBTC', limit=5)


file = json.dumps(depth, indent=2)


for i in file["asks"]:
    print(i[1])

我尝试转储,加载,加载,而不是“转储”。

错误:

转储-TypeError:字符串索引必须为整数;

loads-引发TypeError(f'JSON对象必须为str,字节或字节数组,'TypeError:JSON对象必须为str,字节或字节数组,而不是dict;

load-AttributeError:“ dict”对象没有属性“ read”;

dump-TypeError:dump()缺少1个必需的位置参数:'fp';

感谢解决方案。

1 个答案:

答案 0 :(得分:0)

json.dumps()是一个将dict对象转换为JSON字符串并返回的函数,因此它返回一个字符串对象。

现在有两种情况,

  1. 如果client.get_order_book()返回一个dict,那么您不需要对数据做任何事情,就可以遍历asks

  2. 如果client.get_order_book()返回json字符串,则只需使用dict将其解析为json.loads()