[英]format a string using a string and (padded) number
我正在为一个HTTP请求组装一个URL
baseurl = 'http://..'
action = 'mef'
funcId = 100
year = 2018
month = 1
url = '{}?action={}&functionId={}&yearMonth={}{}'.format(baseurl, action, funcId, year, month)
让我烦恼的是,如果月份号小于10,我需要用0填充月份号。如果唯一要格式化的变量,我知道如何填充该数字:
'{0:02d}'.format(month) # returns: 01
虽然当我尝试这个:
'{}?action={}&functionId={}&yearMonth={}{0:02d}'.format(baseurl, action, funcId, year, month)
它导致错误:
ValueError: cannot switch from automatic field numbering to manual field specification
我以为是因为其他括号没有显示期望的变量类型,但是我无法弄清楚指定字符串的字符是什么。
将{0:02d}
更改为{:02d}
。
冒号前面的零告诉您使用format
的第一个参数(在您的示例中为baseurl
)。 错误消息告诉您,它不能从自动填充字段切换为按索引执行。 您可以在文档中阅读有关格式字符串语法的更多信息。
这应该工作
url = '{}?action={}&functionId={}&yearMonth={}{num:02d}'.format(baseurl, action, funcId, year, num=month)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.