我有以下 TOML:
[gps]
measurement = "gps"
tags = ["lat", "lon", "alt"]
limit = 10
它在 Python 中转换为以下字典:
{
"gps": {
"measurement": "gps",
"tags": [ "lat", "lon", "alt"],
"limit": 10
}
我有一个类,我希望在其中创建一个成员函数read_gps,如下所示:
获得**kwargs从上面字典
目前,只需打印以下字符串: select "lat", "lon", "alt", from "gps" limit 10
代码
class dbClass:
def __init__(self, db=None, **kwargs):
self.kwargs = kwargs # this kwargs is different from the above kwargs
# do some initialization stuff here
def read_gps(self, **kwargs):
# pass the above mentioned dict here
# instance_dbClass.read_gps(gps_dict)
_data = kwargs
_tags = kwargs.get('tags')
print('select "{}","{}","{}" from "{}" limit {}'.format(*_tags,
_data.get('measurement'),
_data.get('limit'))
)
但我收到以下错误:
SyntaxError: only named arguments may follow *expression
相反,如果我删除它measurement,limit它会正常工作。
实现这一目标的pythonic方法是什么?我应该创建两个不同的字符串,然后最后将它们连接起来吗?
审判
query = """
select "{}", "{}", "{}" from "{}" limit {}
""".format(_tags[0], _tags[1], _tags[2], _data.get('measurement'),
_data.get('limit'))
print(query)
工作但是它有一种方法可以在其他值中使用*元组的解包.format()
慕沐林林
相关分类