如何用Python替换URL中JSON结构内的未知id值?
用Python正则替换URL中JSON结构里的id值
需求场景
需要处理如下格式的文本:
text='dfs:/?url=https://myserver/c12&ofg={"tes":{"id":1812}}'
把其中JSON结构里未知的id值(示例为1812)替换为固定值(如189),预期结果:
'dfs:/?url=https://myserver/c12&ofg={"tes":{"id":189}}'
正则实现方案
使用Python的re模块,通过精准匹配id键的前缀和其后的数字值来完成替换:
import re # 原始文本 original_text = 'dfs:/?url=https://myserver/c12&ofg={"tes":{"id":1812}}' # 要替换的固定id值 target_id = '189' # 正则匹配规则:捕获id键的固定前缀,匹配其后的数字 pattern = r'("tes":{"id":)\d+' # 执行替换 result = re.sub(pattern, r'\1' + target_id, original_text) print(result)
规则说明
("tes":{"id":):捕获组,匹配转义后的"tes":{"id":固定前缀,确保只替换目标JSON结构里的id值\d+:匹配任意长度的数字(即原始的id值)- 替换时将匹配内容替换为「捕获组的前缀 + 新id值」,精准完成替换
如果需要适配更通用的JSON结构(比如外层键不是tes),可以调整正则为:
pattern = r'("id":)\d+'
这样会替换所有转义后"id":后的数字值,根据实际需求选择即可。
内容的提问来源于stack exchange,提问作者oronefefe
相关产品推荐
相关产品推荐

