在python中自动添加字符串内的引号

时间:2017-11-03 13:23:06

标签: python regex string

我在python中,我想在字符串中添加引号。具体来说,我有以下字符串:

'{name:robert,surname:paul}'

我想以编程方式获得以下内容,在第一个

上运行
'{name:"robert",surname:"paul"}'

有没有有效的方法来执行此操作?

2 个答案:

答案 0 :(得分:7)

使用正则表达式匹配window.onload = function() { var image_srcs = []; $('#image-zoom img').each(function(index, elem) { image_srcs.push($(this).attr('src'); }); // do something with the array of img srcs you have }; 后的单词Sub abc() Dim a As Integer Dim b As Integer Dim c As Integer b=1 For a = b To 308 If Cells(a, c) = "" Then Range(Cells(a, c), Cells(a - 1, c)).Merge End If Next End Sub ,并使用反向引用\w*替换它:

:字符串前缀\1(原始字符串)以自动转义字符。

https://repl.it/Nh29/1

regex

将产生

r

答案 1 :(得分:0)

def literalize(string):
    string = string[1:-1].split(',')
    string = map(lambda s: str.split(s, ':'), string)
    return_string = ''
    for item in string:
            return_string += '%s: "%s", ' % tuple(item)
    return "{%s}" % return_string

我不会认为这是一部杰作,但我已经尝试过不使用RegEx了。然而它最终变得凌乱和笨拙,并且显然可以用列表理解和什么不可分解。

一些实现细节是,当value内部有逗号或冒号时,它不会很好地工作,另一个实现细节是tuple(item)可以被{{1}替换如果你更喜欢Python 3的方式。

(*item)

注意:在使用像 >>> literalize(a) '{name: "robert", surname: "paul", }'

这样的解析时,我认为最后的冗余,不应该太重要