替换字符串python的一部分

2024-06-23 19:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个字符串,看起来像这样:

a="{'c1': null, 'c2': 'null', 'c3': 'abcd', 'c4': null}"

我想替换,将null转换为null,如果不存在,则添加引号,结果如下:

"{'c1': 'Null', 'c2': 'Null', 'c3': 'abcd', 'c4': 'Null'}"

我能帮点忙吗?你知道吗

PS:我正在使用Python2.7

先谢谢你

编辑:

我试过这个:

def replace(element):
  element.replace('null', "'Null'") #which doesn't work as I want beacause it adds quotes even if they already exist

Tags: 字符串编辑defelementnullreplace引号ps
2条回答

基本上,您需要给定字符串的第一部分,第二部分应该为Null

def fun(strig):
  return str(strig.split(':')[0])+":'Null'}"

对于最简单的情况,可以使用正则表达式解决此问题:

>>> import re
>>> re.sub(r"('?null'?)", "'Null'", "{'abcd': null}")
"{'abcd': 'Null'}"
>>> re.sub(r"('?null'?)", "'Null'", "{'abcd': 'null'}")
"{'abcd': 'Null'}"
>>> 

但是从您的示例和注释(这应该是您问题的一部分)来看,您的字符串中可能有更多内容,我怀疑您在这里处理的是json。如果是这种情况,正确的解决方案(实际上是唯一健壮的解决方案)是将字符串反序列化为Python(使用json.loads(...)),更新生成的Python对象(通常是dict,但可能是dict列表或包含dict的列表等),然后用json.dumps()将其序列化。你知道吗

相关问题 更多 >

    热门问题