gpt4 book ai didi

python - 使用 python 替换 json 值中的双引号

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:54 25 4
gpt4 key购买 nike

jsonStr = '{"name": "John"s Garage", "company": "ABC"}'

它是一个字符串 JSON。

需要转换为

'{"name": "John\"s Garage", "company": "ABC"}'

完全删除双引号

'{"name": "Johns Garage", "company": "ABC"}'

import re
re.sub(r'[a-zA-Z]\"[a-zA-Z]', '', )

这没有给出预期的结果

最佳答案

使用re.sub:

re.sub(r'(:\s+"[^"]*)"(?=[^"]*",)', r'\1', json_str)
re.sub(r'(:\s+"[^"]*)"(?=[^"]*",)', r'\1\"', json_str)
  • (:\s+"[^"]*) 匹配从最后一个 : 到第二个 " 的部分并放入捕获组 1

  • " 匹配文字 ",零宽度正向先行 (?=[^"]*",) 使得确保匹配项后面跟着另一个 ",紧接在 ,

  • 之前
  • 第一次替换时,只保留捕获的组;在第二个捕获组中,替换中紧跟着转义的 "

示例:

In [163]: json_str = '{"name": "John"s Garage", "company": "ABC"}'

In [164]: re.sub(r'(:\s+"[^"]*)"(?=[^"]*",)', r'\1', json_str)
Out[164]: '{"name": "Johns Garage", "company": "ABC"}'

In [165]: re.sub(r'(:\s+"[^"]*)"(?=[^"]*",)', r'\1\"', json_str)
Out[165]: '{"name": "John\\"s Garage", "company": "ABC"}'

关于python - 使用 python 替换 json 值中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48817143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com