我有以下JSON结构。
"bent": "{
\"ActiveT\": 6,
\"ErrorM\": \"None\",
\"Except\": \"None\",
\"HadErr\": \"false\",
\"HM\": 62,
\"NHM\": 57,
\"Parameter\": \"14331232706\",
\"ReturnCode\": \"3050\",
\"Severity\": \"info\",
\"Timestamp\": \"Tue July0209: 58: 16NZST2015\",
\"TId\": \"9891319709\",
\"UserInfo\": \"Unknown\",
}"
我想在JSON结构中的每个\
和key
的开头和结尾删除value
。我想使用python正则表达式执行此操作。< / p>
答案 0 :(得分:3)
使用re.sub
>>> print re.sub(r'\\(?=")', '', string)
"bent": "{
"ActiveT": 6,
"ErrorM": "None",
"Except": "None",
"HadErr": "false",
"HM": 62,
"NHM": 57,
"Parameter": "14331232706",
"ReturnCode": "3050",
"Severity": "info",
"Timestamp": "Tue July0209: 58: 16NZST2015",
"TId": "9891319709",
"UserInfo": "Unknown",
}
正则表达式解释
\\
匹配\
(?=")
积极向前看。检查\
后面是"
将其替换为空字符串。
或强>
>>> print string.replace('\\"', '"')
"bent": "{
"ActiveT": 6,
"ErrorM": "None",
"Except": "None",
"HadErr": "false",
"HM": 62,
"NHM": 57,
"Parameter": "14331232706",
"ReturnCode": "3050",
"Severity": "info",
"Timestamp": "Tue July0209: 58: 16NZST2015",
"TId": "9891319709",
"UserInfo": "Unknown",
}
答案 1 :(得分:0)
在这里使用正则表达式听起来像是错误的方法。如果这是实际的JSON数据(我假设您的示例中缺少{
和}
),正确的答案是正确解析它:
d1 = json.loads(data)
d2 = json.loads(d1['bent'])