从pycu返回的字典中提取数据

2024-09-25 00:35:32 发布

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

我有这个:

import pycurl
import pprint
import json

c = pycurl.Curl()
c.setopt(c.URL, 'https://mydomainname.com')

c.perform()

上面的代码返回如下字典:

{"name":"steve", "lastvisit":"10-02-2012", "age":12}

我想查一下那本字典,看看年龄:

age : 12

我试过:

diction = {}
diction = c.perform()
pprint.pprint(diction["age"])

没有返回任何数据,因此出现以下错误:

TypeError: 'NoneType' object is unsubscriptable

Tags: 代码httpsimportcomjsonurlage字典
1条回答
网友
1楼 · 发布于 2024-09-25 00:35:32

c.perform()不返回任何内容,您需要配置类似文件的对象来捕获该值。一个^{} object就可以了,在调用完成后,您可以在上面调用^{}

import pycurl
import pprint
import json
from io import BytesIO

c = pycurl.Curl()
data = BytesIO()

c.setopt(c.URL, 'https://mydomainname.com')
c.setopt(c.WRITEFUNCTION, data.write)
c.perform()

dictionary = json.loads(data.getvalue())
pprint.pprint(dictionary["age"])

如果你没有和pycurl结婚,你可能会发现^{}要容易得多:

import pprint
import requests

dictionary = requests.get('https://mydomainname.com').json()
pprint.pprint(dictionary["age"])

即使是标准库^{} module也比使用pycurl更容易:

from urllib.request import urlopen
import pprint
import json

response = urlopen('https://mydomainname.com')
dictionary = json.load(response)
pprint.pprint(dictionary["age"])

相关问题 更多 >