python-3.x - 如何在python3中选择元素的特定值
问题描述
这是我的第一个问题,所以它可能非常基本。我已经设法识别并选择了元素,但我无法从中提取特定值,例如“IDinmobiliarias”。
data = soup.select('#PropJSON')
print(data)
当我这样做时,我得到这个输出:
[<input id="PropJSON" type="hidden" value='{"id":"186226916","IDinmobiliarias":"108","IDoperaciones":"1","tipoPropiedad":"2","IDdepartamentos":"10","IDzonas":"13","IDpais":"1","refered":1,"particular":"0","temporario":0,"proyecto":0,"destaque":1,"IDmoneda":"1","monto":"1595000","precio_en_usd":1595000,"monedaISO":"USD"}'/>]
例如,如何提取“108”?我尝试了不同的事情但没有成功。
解决方案
select 会返回给你一个列表。然后,您可以遍历该列表并通过像字典一样访问它来获取 value 属性的数据。获得数据后,您需要使用 json 对其进行解析,然后您可以从中选择任何您喜欢的元素。
from bs4 import BeautifulSoup
import json
html = """<input id="PropJSON" type="hidden" value='{"id":"186226916","IDinmobiliarias":"108","IDoperaciones":"1","tipoPropiedad":"2","IDdepartamentos":"10","IDzonas":"13","IDpais":"1","refered":1,"particular":"0","temporario":0,"proyecto":0,"destaque":1,"IDmoneda":"1","monto":"1595000","precio_en_usd":1595000,"monedaISO":"USD"}'/>"""
soup = BeautifulSoup(html, features="lxml")
data = soup.select('#PropJSON')
for input_tag in data:
json_string = json.loads(input_tag['value'])
print(json_string['IDinmobiliarias'])
输出
108
推荐阅读
- python-3.x - 在 s3 存储桶中创建文件但文件为空
- android - Android Studio 3.2 升级上的 java.lang.VerifyError
- docker - 'docker-compose up' 在此过程中停止
- jquery - 如何使用水晶语言和 kemal 计算每页
- arrays - 在 MQL4 中限制数组中的值
- node.js - 针对 README.md 中的代码示例运行测试?
- python - 如何通过消除连续互补方向对从给定方向列表中返回简化方向列表?
- python - 在 Windows 10 中从 Github 安装 Python 模块
- c++ - 在 char* 数组中添加两个索引
- sql-server - 如何修复错误:将 varchar 值 '00:20' 转换为数据类型 int 时转换失败