如何格式化arr和myname?
arr = {
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %(pincode)s and my name is: %s !""" % {arr, myname}
print """my pincode is: %(pincode)s and my name is: %s !""" % (arr, myname)
期待输出:
我的密码是:pincode,我的名字是:myname!
得到:
TypeError: format requires a mapping
TypeError: unhashable type: 'dict'
TypeError: not enough arguments for format string
答案 0 :(得分:3)
如何使用新的str.format
:
arr = {
'pincode':'PINCODE',
'username':'USERNAME',
'password':'PASSWORD',
'action':'ACTION',
'forward':'FORWARD'
}
myname="MYNAME"
print """my pincode is: {pincode} and my name is: {0}!""".format(myname, **arr)
例如:
>>> arr = {
... 'pincode':'PINCODE',
... 'username':'USERNAME',
... 'password':'PASSWORD',
... 'action':'ACTION',
... 'forward':'FORWARD'
... }
>>> myname="MYNAME"
>>> print """my pincode is: {pincode} and my name is: {0}!""".format(myname, **arr)
my pincode is: PINCODE and my name is: MYNAME!
>>>
**arr
应将字典作为关键字传递给format
。
答案 1 :(得分:2)
这有效:
arr = {
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)
您还可以将命名参数与format一起使用:
print 'my pincode is: {pincode} and my name is: {myname} !'.format(
myname=myname, **arr)
请注意,在使用myname
设置映射中的所有其他关键字之前,将关键字**arr
设置为其值。
干杯。
答案 2 :(得分:2)
arr = {
'pincode':'pincode',
'username':'username',
'password':'password',
'action':'action',
'forward':'forward'
}
myname="myname"
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)
print """my pincode is: %s and my name is: %s !""" % (arr['pincode'], myname)
这似乎有效
编辑:啊,被打败了!