解决yaml解析双感叹号

ゞ 浴缸里的玫瑰 2021-06-24 16:10 833阅读 0赞
  1. ds3: !!io.sphere.core.config.Configuration
  2. dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  3. properties:
  4. originPoolType: null
  5. idleTimeout: 60000
  6. maxLifetime: 1800000
  7. maximumPoolSize: 50

今天做做yaml解析(字符串转python对象,也就是字典)的时候,上面的字符串总是报错,解析不了双感叹号
网上也查了下

  1. conda update conda
  2. conda update anaconda-navigator
  3. conda update navigator-updater

说升级一下conda就可以了,可是我觉得PyYaml包处理这点问题不是小意思么!
后来我发现,ds3: 后面的双感叹号,其实应该是注释一类的东西吧,我猜测,这个还要跟数据源开发同事确认一下
我处理的方案是,把“!!” 变成“#”(#是注释的意思),这样解析就没有问题了

  1. import yaml
  2. a = """
  3. ds3: !!io.sphere.core.config.Configuration
  4. dataSourceClassName: com.zaxxer.hikari.HikariDataSource
  5. properties:
  6. originPoolType: null
  7. idleTimeout: 60000
  8. maxLifetime: 1800000
  9. maximumPoolSize: 50
  10. """
  11. data = data.replace("!!", "#")
  12. yaml.load(data, Loader=yaml.FullLoader)
  13. {
  14. 'ds3': {
  15. 'properties': {
  16. 'maximumPoolSize': 50,
  17. 'idleTimeout': 60000,
  18. 'maxLifetime': 1800000,
  19. 'originPoolType': None
  20. },
  21. 'dataSourceClassName': 'com.zaxxer.hikari.HikariDataSource'
  22. }
  23. }

发表评论

表情:
评论列表 (有 0 条评论,833人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android项目红色感叹

    偶尔用Eclispe开发,由于很久没有打开过项目,打开了在项目里有一个红色感叹号,项目文件又没有报错。一般有两种方法。 –1.Project --> Clean 清理一下,一