iotdb 的路径常见这样
root.database.group.device
root.database.`123gro.up`.device
root.database.`123gr``o.up`.device
有些时候需要转义,仔细观察,字段格式类似 csv格式
此时使用 csv 模块的功能解析,最为便捷
import csv
class IOTDB_PATH_Dialect(csv.Dialect):
delimiter = '.' # 字段分隔符
doublequote = True # 是否双写引号
escapechar = None # 转义字符
lineterminator = '\n' # 行终止符
quotechar = '`' # 引号字符
quoting = csv.QUOTE_ALL # 引号模式
skipinitialspace = False # 是否跳过分隔符后的空格
strict = True # 是否跳过分隔符后的空格
def split_ts_path(p: str):
return list(csv.reader([p], dialect=IOTDB_PATH_Dialect))[0]
print(split_ts_path('root.database.group.device'))
print(split_ts_path('root.database.`123gro.up`.device'))
print(split_ts_path('root.database.`123gr``o.up`.device'))
输出为
['root', 'database', 'group', 'device']
['root', 'database', '123gro.up', 'device']
['root', 'database', '123gr`o.up', 'device']
输出结果正确

被折叠的 条评论
为什么被折叠?



