Python新手求助:如何处理API返回的带b'前缀的响应数据?
解决Python请求API返回bytes数据无法操作的问题
嘿,别担心!刚接触Python API调用遇到这个问题很正常,我来一步步帮你搞定~
首先说那个b'前缀:它表示你拿到的是bytes类型(二进制字节数据),不是直接能用来做字典操作的Python数据结构。HTTP接口返回的原始数据都是二进制流,所以response.content会直接返回这种字节形式的内容。
那怎么把它转成我们能操作的列表/字典呢?其实requests库已经给我们准备好了超级方便的方法,不用自己手动解码再转JSON,直接用response.json()就可以了!
完整示例代码
import requests # 发送请求 response = requests.get('https://api.coingecko.com/api/v3/finance_products') # 先确认请求是否成功(状态码200表示成功) if response.status_code == 200: # 直接将响应转换成Python的列表(因为返回的是JSON数组) finance_products = response.json() # 现在就可以像操作普通列表和字典一样使用了 # 比如获取第一个产品的平台名称和收益率 first_product = finance_products[0] print(f"平台:{first_product['platform']}") print(f"年化收益率:{first_product['supply_rate_percentage']}%") else: print(f"请求出错啦,状态码:{response.status_code}")
额外说明
如果你好奇手动转换的方式也可以这么做(不过还是推荐上面的方法更省心):
- 先用
decode('utf-8')把bytes转成JSON字符串:json_str = response.content.decode('utf-8') - 再用
json模块把字符串转成Python数据结构:
import json finance_products = json.loads(json_str)
这样处理后,你就能随意访问里面的字段、做数据筛选或者分析啦~
内容的提问来源于stack exchange,提问作者Ron Ang
相关产品推荐
相关产品推荐

