TypeError:不能对obj这样的字节使用字符串模式

2024-04-29 08:26:27 发布

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

import json
import requests

url = 'http://developer.usa.gov/1usagov.json'
r = requests.get(url, stream=True)

for line in r.iter_lines():
    if line:
        print (json.loads(line))

出现此错误:

TypeError: can't use a string pattern on a bytes-like object

在浏览浏览器时,我确实看到了响应是一个Json,但是请求库说它是一个类似字节的对象,为什么?


Tags: inimportjsontruehttpurldeveloperfor
1条回答
网友
1楼 · 发布于 2024-04-29 08:26:27

如果使用Python 3.x,则应将str对象传递给^{}

替换以下行:

print(json.loads(line))

使用:

print(json.loads(line.decode()))

更新:Python 3.6中的行为发生了变化。参数现在可以是bytes或bytearray类型。输入编码应为UTF-8、UTF-16或UTF-32。

相关问题 更多 >