2011-11-03 23 views
0

我试图把网络上提供的信息,这样做,我使用字符串格式化:%s不更换信息

fields = """{"fname" : %s, "lname" : %s, "email" : %s, "deptid" : deptid, "active" : active, "sentient" : sentient}""", (fname, lname, email) 

与各三个变量的各种值。

无论如何,当我尝试查看字段时,它仍然显示%s!我怎样才能让它取代它?

+0

奇怪,我以为我试过,并没有奏效。谢谢! –

回答

2

你正在寻找的角色是%,不是。 在fields = """{"fname" : %s, "lname" : %s, "email" : %s, "deptid" : deptid, "active" : active, "sentient" : sentient}""" % (fname, lname, email)

1

您根本没有使用%运算符,而是使用简单的,来构造一个元组。

fields = ("""{"fname" : %s, "lname" : %s, "email" : %s, "deptid" : deptid, """ 
      """"active" : active, "sentient" : sentient}""" % (fname, lname, email)) 

无论如何,好像你正在尝试生成JSON输出。如果你是,看看json module

2
fields = """{"fname" : %s, "lname" : %s, "email" : %s, "deptid" : deptid, "active" : active, "sentient" : sentient}""" % (fname, lname, email) 

很简单,用%取代你的逗号(其中构造一个元组)(这是做字符串格式化操作)。另外,我建议用单引号替换你的三引号(尽管它没有错,就像你用它的方式,我只是觉得它用这种方式更具可读性)。

fields = '{"fname" : %s, "lname" : %s, "email" : %s, "deptid" : deptid, "active" : active, "sentient" : sentient}' % (fname, lname, email) 
1

您需要使用%运营商的变量列表绑定到字符串,像这样:

"Here is my %s" % ("string") 

你有字符串和您的变量列表,之间用逗号这并没有真正帮到你。