繁体   English   中英

在python中搜索并替换字符串中的单词

[英]Search and replace a word in a string in python

我有这样的字符串-

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM