替换字符串python

时间:2018-04-10 14:50:34

标签: python string

我有两个字符串,如下所示:

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

我想替换将null转换为Null并添加引号(如果它们不存在),所以结果将是这样的:

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

请问我能得到一些帮助吗?

PS:我正在使用python 2.7

提前谢谢

修改

我试过了:

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

2 个答案:

答案 0 :(得分:0)

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

>>> 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,但可能是一个dicts列表或者可能是包含包含dicts等的列表,然后使用json.dumps()将其序列化。

答案 1 :(得分:-1)

基本上你想要给定字符串的第一部分,第二部分应该是Null

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