解决yaml解析双感叹号
ds3: !!io.sphere.core.config.Configuration
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
properties:
originPoolType: null
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
今天做做yaml解析(字符串转python对象,也就是字典)的时候,上面的字符串总是报错,解析不了双感叹号
网上也查了下
conda update conda
conda update anaconda-navigator
conda update navigator-updater
说升级一下conda就可以了,可是我觉得PyYaml包处理这点问题不是小意思么!
后来我发现,ds3: 后面的双感叹号,其实应该是注释一类的东西吧,我猜测,这个还要跟数据源开发同事确认一下
我处理的方案是,把“!!” 变成“#”(#是注释的意思),这样解析就没有问题了
import yaml
a = """
ds3: !!io.sphere.core.config.Configuration
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
properties:
originPoolType: null
idleTimeout: 60000
maxLifetime: 1800000
maximumPoolSize: 50
"""
data = data.replace("!!", "#")
yaml.load(data, Loader=yaml.FullLoader)
{
'ds3': {
'properties': {
'maximumPoolSize': 50,
'idleTimeout': 60000,
'maxLifetime': 1800000,
'originPoolType': None
},
'dataSourceClassName': 'com.zaxxer.hikari.HikariDataSource'
}
}
还没有评论,来说两句吧...