此代码将返回我要查找的文本。但我无法调整标点符号。
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]"
答案 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)
你差不多完成了。您只需要进行这些微小的更改:
使用原始字符串,只需在您已有的字符串之前添加wget
:
r
您有一个列表,其中包含您需要的所有字符串组。只需使用r"\'%s\': %s"
str.join
唯一缺少的是你的开始和结束括号。
您的整个代码将是:
', '.join(newData)
答案 2 :(得分:0)
您可以将代码更改为
newData = ("\"[" +
", ".join("\\'%s\\': %s" % (tup, tup)
for tup in fieldnames if tup!='destination') +
"]\"")
注意:我假设您希望双引号,反斜杠和单引号成为字符串的一部分。确保输出既不是Python也不是Javascript,因为:
用于字典/对象,但它们需要大括号{
/ }
而不是括号[
/ ]