如何使用正则表达式在python中的单词周围添加引号?

如何使用正则表达式在python中的单词周围添加引号?,python,regex,Python,Regex,我有以下json类型的字符串文本 blockAddress:{strandId:"C1DYN7Cag8oDCRRoIJ1uAz", sequenceNo:68794}, transactionId:"AYj8Vf4kQ9EE6BJJbvt3js", blockTimestamp:2019-12-03T08:00:04.899000001Z, blockHash:{{gdOVqf7AsgaQf90ZK1Hsva2lzPckHnxGmm3plDRBeGA=}}, entriesHash:{{n8oU

我有以下json类型的字符串文本

blockAddress:{strandId:"C1DYN7Cag8oDCRRoIJ1uAz",
sequenceNo:68794},
transactionId:"AYj8Vf4kQ9EE6BJJbvt3js",
blockTimestamp:2019-12-03T08:00:04.899000001Z,
blockHash:{{gdOVqf7AsgaQf90ZK1Hsva2lzPckHnxGmm3plDRBeGA=}},
entriesHash:{{n8oUjERAqT9kL+Cr59P6UPJbIdyPvaP0R9ey9+Njdzc=}}
我想在一个有[a-zA-Z]字符且以冒号结尾的单词周围加上引号:symbol

那么我上面的字符串需要如下所示:

"blockAddress":{"strandId":"C1DYN7Cag8oDCRRoIJ1uAz",
"sequenceNo":68794},
"transactionId":"AYj8Vf4kQ9EE6BJJbvt3js",
"blockTimestamp":2019-12-03T08:00:04.899000001Z,
"blockHash":{{gdOVqf7AsgaQf90ZK1Hsva2lzPckHnxGmm3plDRBeGA=}},
"entriesHash":{{n8oUjERAqT9kL+Cr59P6UPJbIdyPvaP0R9ey9+Njdzc=}}
我正在尝试这个命令'[a-zA-Z]+:',r'\1',s。但我在冒号后面加了引号。像

"blockAddress:"{"strandId:""C1DYN7Cag8oDCRRoIJ1uAz",
"sequenceNo:"68794},
"transactionId:""AYj8Vf4kQ9EE6BJJbvt3js",
"blockTimestamp:"2019-12-03T08:00:04.899000001Z,
"blockHash:"{{gdOVqf7AsgaQf90ZK1Hsva2lzPckHnxGmm3plDRBeGA=}},
"entriesHash:"{{n8oUjERAqT9kL+Cr59P6UPJbIdyPvaP0R9ey9+Njdzc=}}
我需要在上面的正则表达式中更改什么?或者python中有什么不同的方法吗

印刷品:

"blockAddress":{"strandId":"C1DYN7Cag8oDCRRoIJ1uAz",
"sequenceNo":68794},
"transactionId":"AYj8Vf4kQ9EE6BJJbvt3js",
"blockTimestamp":2019-12-03T08:00:04.899000001Z,
"blockHash":{{gdOVqf7AsgaQf90ZK1Hsva2lzPckHnxGmm3plDRBeGA=}},
"entriesHash":{{n8oUjERAqT9kL+Cr59P6UPJbIdyPvaP0R9ey9+Njdzc=}}

听起来你想要的是:

re.sub(r'([a-zA-Z]+):', r'"\1":', s)
使用前瞻断言:


请仅对实际符合JSON规范的内容使用JSON标记或描述。如果它不符合规范,它实际上就不是JSON。
re.sub(r'([a-zA-Z]+):', r'"\1":', s)
re.sub(r'([a-zA-Z]+)(?=:)', r'"\1"', input)