欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决yaml解析双感叹号

程序员文章站 2023-12-30 17:31:16
...
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'
	}
}
相关标签: yaml

上一篇:

下一篇: