【发布时间】:2022-01-22 07:03:39
【问题描述】:
我有这个来自 HTML 的 JSON 对象。
{
"isCompany": false,
"accommodations": [
{
"id": "00000000031000006435",
"isChecked": false,
"name": "Théo",
"addressLine1": "Rue des patriotes 40 Y",
"addressLine2": "1050 Ixelles",
"nightsDeclared": 5,
"schoolNightsDeclared": 3,
"schoolNightsAttached": 0,
"taxableNights": 2.0,
"totalPayment": 0.0,
"isInProgress": true,
"isLate": false,
"isPayed": "false",
"deadline": "2021-12-31",
"initialAmount": 0.0,
"remainingAmount": 0.0
},
{
"id": "00000000031000006438",
"isChecked": false,
"name": "Théo",
"addressLine1": "Rue des Gens 45 B",
"addressLine2": "1040 Etterbeek",
"nightsDeclared": 5,
"schoolNightsDeclared": 3,
"schoolNightsAttached": 0,
"taxableNights": 2.0,
"totalPayment": 0.0,
"isInProgress": true,
"isLate": false,
"isPayed": "false",
"deadline": "2021-12-31",
"initialAmount": 0.0,
"remainingAmount": 0.0
}
]
}
我知道在 Gatling 中,可以通过编写这个正则表达式来获取住宿 ID:
check(regex(""""accommodations":\[\{"id":"(.*?)"""").saveAs("accommodationId"))
现在我的问题是,获得 "isInProgress" 的正则表达式是什么?
【问题讨论】:
-
为什么要使用正则表达式而不是反序列化和作为字典访问? IE。
[a['id'] for a in json.loads(json_string)['accommodations']]。另外,您是否尝试过简单地将id替换为您想要的字段名称? -
我想强烈强调@DannyVarod 的评论。您无法保证 JSON 将继续以这种方式显示。正确的答案是使用
json.loads将其转换为 Python 结构。与尝试正则表达式相比,它的麻烦少得多、微妙得多,性能也不差。