将url解析为json后,不能从list only返回特定元素

2024-09-29 22:34:54 发布

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

全部

我编写了以下代码:

import requests,bs4
res=requests.get('http://itunes.apple.com/lookup?id=551798799')
res.raise_for_status()
wwe=bs4.BeautifulSoup(res.text)
print wwe.select('p averageUserRating')

如果我只做:print wwe.select('p'),那么代码可以工作,但它会打印列表中的所有内容。但是,当我打印上面输出中的内容时,会抛出一个错误,说明选择器不受支持

我基本上只尝试返回averageUserRating值(即4.0)。 谢谢你的帮助


Tags: 代码importcomhttp内容applegetres
1条回答
网友
1楼 · 发布于 2024-09-29 22:34:54

该文件的内容不是HTML,这是BeautifulSoup设计用来读取的;它是一种不同的数据格式,称为JSON。谢天谢地,requests库使解析JSON变得非常容易——如果您对响应调用.json(),它会将其解析到字典中。您需要访问averageUserRating,它位于results列表的第一个元素中,因此您可以使用它来访问您需要的内容:

>>> data = res.json()
>>> data["results"][0]["averageUserRating"]
4.0

要修改现有代码:

import requests
res=requests.get('http://itunes.apple.com/lookup?id=551798799')
res.raise_for_status()
wwe=res.json()
print data["results"][0]["averageUserRating"]

相关问题 更多 >

    热门问题