我有以下设置

cred_dict={'admin_id':'user','admin_password':'pass'}

cred_template='-id=%(admin_id) -pa=%(admin_password)'

当我试着
cred_template % cred_dict

我明白了
ValueError: unsupported format character 'p' (0x70) at index 17

我不明白为什么。

最佳答案

缺少一个关键元素:格式化类型指示符:

cred_template='-id=%(admin_id)s -pa=%(admin_password)s'
#                             ^                      ^

s表示要将值格式化为字符串如果没有这些指示符,python将继续查找类型并查找字母p(from-pa),而这不是有效的类型指示符。
演示:
>>> cred_dict={'admin_id':'user','admin_password':'pass'}
>>> cred_template='-id=%(admin_id)s -pa=%(admin_password)s'
>>> cred_template % cred_dict
'-id=user -pa=pass'

10-05 23:50
查看更多