在python中搜索并替换字符串中的单词
我有一根这样的绳子-在python中搜索并替换字符串中的单词,python,regex,Python,Regex,我有一根这样的绳子- str = 'some_random_command_that_take_parameters -d{"key1": "value1", "key2": "value2", "key3": "value3", "tableName": "my_table", "key5": "value5", "key6":"value6"}' 我需要搜索“tableName”:“my_table”,并用python中的“tableName”:“my_table_temp”替换它 值“m
str = 'some_random_command_that_take_parameters -d{"key1": "value1", "key2": "value2", "key3": "value3", "tableName": "my_table", "key5": "value5", "key6":"value6"}'
我需要搜索“tableName”:“my_table”,并用python中的“tableName”:“my_table_temp”替换它
值“my_table”是可变的,我在编码时不知道它。所以我不能只是搜索它并替换它。我唯一能确定搜索的是“tableName”(或任何其他键)
编辑:
对不起,不清楚,示例不是字典,整个内容是字符串。作为字符串:
s = '{"key1": "value1", "key2": "value2", "key3": "value3",' + \
' "tableName": "my_table", "key5": "value5", "key6":"value6"}'
# using regular expressions
# (quick and dirty)
import re
s = re.sub(
'(?<="tableName":)\s*"(.*?)"',
lambda match: ' "{}_temp"'.format(match.group(1)),
s
)
# OR
# using ast.literal_eval
# (less efficient but more bomb-proof)
import ast
d = ast.literal_eval(s) # parse to dict
d["tableName"] = d["tableName"] + "_temp" # update field
s = str(d) # cast back to string
s='{“key1”:“value1”、“key2”:“value2”、“key3”:“value3”、'+\
““表名”:“我的表”,“键5”:“值5”,“键6”:“值6”}”
#使用正则表达式
#(又快又脏)
进口稀土
s=re.sub(
'(?