如何找到字节格式的列表长度?

2024-10-03 17:16:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据变量,它包含一个listdictslists,是我从一个api获取的,格式为bytes。列表长度可变。你知道吗

In: data
Out: b'[{"dict1_list1":[1,2,3],"dict1_list2":[4,5,6]},{"dict2_list1":[1,2,3],"dict2_list2":[4,5,6]}]'

我想确定列表中何时只有一个dict(即api已用完数据)

In: data
Out: b'[{"onlydict_list1":[1,2,3],"onlydict_list2":[4,5,6]}]'

但是因为数据的格式是byte,所以我不能返回列表的长度。你知道吗

In: len(data)
Out: 53  # Not '1' as I would like

如何在b'[....]'中标识列表的长度?你知道吗


Tags: 数据inapi列表data格式outlists
2条回答

得到的是bytes对象的长度,显然是data而不是它对应的JSON对象的Python版本。你知道吗

一种简单的方法是首先使用json.loads()将数据转换成与字节字符串等效的Python对象。我的意思是:

import json

data = (b'[{"dict1_list1":[1,2,3],"dict1_list2":[4,5,6]},'
         b'{"dict2_list1":[1,2,3],"dict2_list2":[4,5,6]}]')

print(len(json.loads(data)))  # -> 2

如果r是response,那么尝试调用r.json()方法。它将转换为一个列表,然后你可以找到它的长度。你也可以使用json.loads文件(r.text)通过导入json(import json)。你知道吗

相关问题 更多 >