python - 从获取请求的响应中解析和获取列表
问题描述
我正在尝试使用请求模块解析网站:
import requests
some_data = {'a':'',
'b':''}
with requests.Session() as s:
result = s.post('http://website.com',data=some_data)
print(result.text)
该页面响应如下:
{
"arrangetype":"U",
"list": [
{
"product_no":43,
"display_order":4,
"is_selling":"T",
"product_empty":"F",
"fix_position":null,
"is_auto_sort":false
},
{
"product_no":44,
"display_order":6,
"is_selling":"T",
"product_empty":"F",
"fix_position":null,
"is_auto_sort":false
}
],
"length":2
}
我发现与其解析完整的 HTML,不如处理响应,因为我想要的所有数据都在该响应中。
我想要得到的是 的值列表product_no
,所以预期的结果是:
[43,44]
我该怎么做呢?
解决方案
使用 将您的 JSON 响应转换为字典json.loads()
,并在列表理解中收集您的结果。
演示:
from json import loads
data = """{
"arrangetype":"U",
"list": [
{
"product_no":43,
"display_order":4,
"is_selling":"T",
"product_empty":"F",
"fix_position":null,
"is_auto_sort":false
},
{
"product_no":44,
"display_order":6,
"is_selling":"T",
"product_empty":"F",
"fix_position":null,
"is_auto_sort":false
}
],
"length":2
}"""
json_dict = loads(data)
print([x['product_no'] for x in json_dict['list']])
# [43, 44]
完整代码:
import requests
from json import loads
some_data = {'a':'',
'b':''}
with requests.Session() as s:
result = s.post('http://website.com',data=some_data)
json_dict = loads(result.text)
print([x["product_no"] for x in json_dict["list"]])
推荐阅读
- javascript - 箭头函数正在改变一个日期常量
- r - 如何查看工具文档:::.check_packages()
- list - Flutter:为字符串列表中的每个项目创建按钮(Dart)
- php - 如何从数据库中获取 mysqli 结果,其中 WHERE 子句搜索包含其中一部分的记录,不一定是全部
- r - 如何在 r 中使用 SMOTE
- asp.net - ASP .Net Core 2.2 发布到 Azure
- html - 重新定位 h1 标签,
- java - 定义 final 一个不可变参数,将参数绑定到另一个局部变量并改变局部变量是否合法?
- gtk - 在 pythonanywhere 上安装 Gtk+
- angular - 如何获得选定的期权价值?