繁体   English   中英

使用字符串和(填充的)数字格式化字符串

[英]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)

https://www.python.org/dev/peps/pep-3101/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM