请给我建议字符串值格式的最佳实践
please suggest me the best practice in sting-value formating
我有一个像下面这样的长字符串,我正在尝试格式化并使其与 PEP 标准保持一致
'http://abc/api/run=1&'+ \
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'+ \
'&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
但是运行输出是这样的
'http://abc/api/run=1&actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]&tripOrigin=2311443&tripDestination=123445667'
期待格式化所有 {0}、{1}、{2}、{3}、{4} 和 {5}
不要使用连接:使用发生在括号内的隐式连接。
my_string = (
'http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
)
用括号括起您的字符串,您也不再需要 + 和 \:
('http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}').format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
您需要转义与格式化占位符不对应的花括号。
例如:
这个
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}
应该看起来像:
'actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}}
所以:
>>> print 'http://abc/api/run=1&actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}},{{"query":"hotels-{1}-{3}-{4}-1-1_0-"}},{{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}}]&
tripOrigin={0}&tripDestination={1}'.format(999,999,999,999,999,999)
http://abc/api/run=1&actionData=[{"query":"air-999-999-999--1-0-0-E-111--"},{"query":"hotels-999-999-999-1-1_0-"},{"query":"air-999-999-999--1-0-0-E-111--"}]&tripOrigin=999&tripDestination=999
my_string = (
'http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},'
'{"query":"hotels-{1}-{3}-{4}-1-1_0-"},'
'{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}'
).format(origin.get('vcid'), destination.get('vcid'),
onward_f_date, check_in_date, check_out_date, return_f_date)
我有一个像下面这样的长字符串,我正在尝试格式化并使其与 PEP 标准保持一致
'http://abc/api/run=1&'+ \
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'+ \
'&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
但是运行输出是这样的
'http://abc/api/run=1&actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]&tripOrigin=2311443&tripDestination=123445667'
期待格式化所有 {0}、{1}、{2}、{3}、{4} 和 {5}
不要使用连接:使用发生在括号内的隐式连接。
my_string = (
'http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}'.format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
)
用括号括起您的字符串,您也不再需要 + 和 \:
('http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},{"query":"hotels-{1}-{3}-{4}-1-1_0-"},{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}').format(origin.get('vcid'), destination.get('vcid'), onward_f_date, check_in_date, check_out_date, return_f_date)
您需要转义与格式化占位符不对应的花括号。
例如: 这个
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}
应该看起来像:
'actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}}
所以:
>>> print 'http://abc/api/run=1&actionData=[{{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"}},{{"query":"hotels-{1}-{3}-{4}-1-1_0-"}},{{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}}]&
tripOrigin={0}&tripDestination={1}'.format(999,999,999,999,999,999)
http://abc/api/run=1&actionData=[{"query":"air-999-999-999--1-0-0-E-111--"},{"query":"hotels-999-999-999-1-1_0-"},{"query":"air-999-999-999--1-0-0-E-111--"}]&tripOrigin=999&tripDestination=999
my_string = (
'http://abc/api/run=1&'
'actionData=[{"query":"air-{0}-{1}-{2}--1-0-0-E-111--"},'
'{"query":"hotels-{1}-{3}-{4}-1-1_0-"},'
'{"query":"air-{1}-{0}-{5}--1-0-0-E-111--"}]'
'&tripOrigin={0}&tripDestination={1}'
).format(origin.get('vcid'), destination.get('vcid'),
onward_f_date, check_in_date, check_out_date, return_f_date)