将元组和其他字符串传递给字符串中的.format(Python格式)时遇到问题
我有以下TOML:将元组和其他字符串传递给字符串中的.format(Python格式)时遇到问题,python,python-3.x,string,Python,Python 3.x,String,我有以下TOML: [gps] measurement = "gps" tags = ["lat", "lon", "alt"] limit = 10 这将转换为Python中的以下词典: { "gps": { "measurement": "gps", "tags": [ "lat", "lon", "alt"], "limit": 10 } 我有一个类,我希望创建一个成员函数read\u gps,如下所示: 从上面的目录中获取**kwargs
[gps]
measurement = "gps"
tags = ["lat", "lon", "alt"]
limit = 10
这将转换为Python中的以下词典:
{
"gps": {
"measurement": "gps",
"tags": [ "lat", "lon", "alt"],
"limit": 10
}
我有一个类,我希望创建一个成员函数read\u gps
,如下所示:
**kwargs
从“gps”限制10中选择“lat”、“lon”、“alt”
SyntaxError: only named arguments may follow *expression
相反,如果我删除测量
和限制
,它将正常工作
什么是蟒蛇式的方法来实现这一点?我应该创建两个不同的字符串,然后在最后连接它们吗
试验
但是,它可以使用
*
解包.format()
中的元组以及其他值,您的代码将在Python版本3.5+中工作,如下所示。如果必须使用低于3.5的版本,则可以使用命名参数:
print(select "{}","{}","{}" from "{measurement}" limit {limit}'.format(*_tags, measurement=measurement, limit=limit))
或者,首先将\u标记
连接到单个字符串中:
print('select "{}" from "{}" limit {}'.format('","'.join(_tags), measurement, limit))
即使
\u标记的长度发生变化,第二个选项也会起作用。您的代码将在Python版本3.5+中工作,如下所示。如果必须使用低于3.5的版本,则可以使用命名参数:
print(select "{}","{}","{}" from "{measurement}" limit {limit}'.format(*_tags, measurement=measurement, limit=limit))
或者,首先将\u标记
连接到单个字符串中:
print('select "{}" from "{}" limit {}'.format('","'.join(_tags), measurement, limit))
即使\u标记的长度发生变化,第二个选项也会起作用。对我来说很好。你是说*
吗?是的,你的python版本是什么?3.6?我使用的是3.4.3,对我来说很好。你是说*
?是的,你的python版本是什么?3.6?我使用的是3.4.3