在Python中将字符串转换为JSON?

bnl*_*cas 6 python json urllib3

我正在尝试转换使用urllib3从http请求生成的字符串.

Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    data = json.load(data)
  File "C:\Python27\Lib\json\__init__.py", line 286, in load
    return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'

>>> import urllib3
>>> import json
>>> request = #urllib3.request(method, url, fields=parameters)
>>> data = request.data
Run Code Online (Sandbox Code Playgroud)

现在......当尝试以下内容时,我得到了这个错误......

>>> json.load(data) # generates the error
>>> json.load(request.read()) # generates the error
Run Code Online (Sandbox Code Playgroud)

跑步type(data),type(data.read())都回归<type 'str'>

data = '{"subscriber":"0"}}\n'
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 20

json.load从类文件对象加载.你要么想用json.loads:

json.loads(data)
Run Code Online (Sandbox Code Playgroud)

或者只是json.load在请求上使用,这是一个类似文件的对象:

json.load(request)
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用请求库,您可以这样做:

import requests

json = requests.get(url).json()
Run Code Online (Sandbox Code Playgroud)