【发布时间】:2019-12-20 10:42:30
【问题描述】:
我一直在尝试弄清楚如何使用正则表达式将字符串转换为 json。
我试图抓取的是值 items 并将其转换为 json:
{
'submitId': 'commodity-show-submit',
'params': [
[
'color',
'COLOUR'
],
[
'items',
'Select items'
]
],
'items': {
"48924": {
"params": [
"black",
"US 10"
]
},
"48925": {
"params": [
"black",
"US 10.5"
]
},
"48926": {
"params": [
"black",
"US 11"
]
}
},
'pids': [
48924,
],
'items': [
'Banana',
],
'cartId': '.common-cart',
'imgId': '',
'onInvalid': function(){
message("Please select a variant: %s.")
而且我对正则表达式了解不多,但我试图挑战自己,我认为我完全不在这个区域。它只抓取了第一个项目对象。
r"'items': (.+?)}"
基本上我要做的就是将此部分转换为json
'items': {
"48924": {
"params": [
"black",
"US 10"
]
},
"48925": {
"params": [
"black",
"US 10.5"
]
},
"48926": {
"params": [
"black",
"US 11"
]
}
}
最好的方法是什么?
【问题讨论】:
-
使用正则表达式是否有硬性要求?为什么不使用可用的 JSON 解析器?
-
因为我相信 JSON 解析器不会工作,因为它以
'onInvalid': function(){ message("Please select a variant: %s.")结尾的 json 结尾。 @SergioPulgarin -
JSON.stringify(obj)似乎对带有functions的对象也有效(因为它忽略了它们)。 -
@SergioPulgarin 我相信这是针对 Javascript 的?我正在使用 Python :)
-
所以我认为你的数据源有问题。在达到这个点之前可以清洗吗?