使用元组值替换python字符串

时间:2016-07-31 05:26:46

标签: python

此代码将返回我要查找的文本。但我无法调整标点符号。

fieldnames = ("user","messageid","message","destination", "code","mobile","mytimestamp")
newData = ["\'%s\': %s" % (tup, tup) for tup in fieldnames if tup!='destination' ]

newData将返回

["'user': user", "'messageid': messageid", "'message': message", "'code': code", "'mobile': mobile",  "'mytimestamp': mytimestamp"]

我需要删除双引号并添加\

预期的字符串(非列表)输出是这个......

"[\'user\': user, \'messageid\': messageid, \'message\': message, \'code\': code, \'mobile\': mobile, \'mytimestamp\': mytimestamp]"

3 个答案:

答案 0 :(得分:2)

怎么样:

fieldnames = ("user","messageid","message","destination", "code","mobile","mytimestamp")

s = "[%s]" % ', '.join(["\\'%s\\': %s" % (t,t) for t in fieldnames if t != 'destination'])
print(s)

答案 1 :(得分:1)

你差不多完成了。您只需要进行这些微小的更改:

  1. 使用原始字符串,只需在您已有的字符串之前添加wget

    r

  2. 您有一个列表,其中包含您需要的所有字符串组。只需使用r"\'%s\': %s"

    加入他们

    str.join

  3. 唯一缺少的是你的开始和结束括号。

  4. 您的整个代码将是:

    ', '.join(newData)

答案 2 :(得分:0)

您可以将代码更改为

newData = ("\"[" +
           ", ".join("\\'%s\\': %s" % (tup, tup)
                     for tup in fieldnames if  tup!='destination') +
           "]\"")

注意:我假设您希望双引号,反斜杠和单引号成为字符串的一部分。确保输出既不是Python也不是Javascript,因为:用于字典/对象,但它们需要大括号{ / }而不是括号[ / ]