解决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'
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
YOLOv8是一种流行的目标检测算法,其中的YAML解析是很重要的一步。YAML是一种常见的标记语言,可以用于配置文件、数据序列化和通信协议等方面。在YOLOv8中,YAML解析主要用于解析网络配置文件和数据增强的配置文件。 网络配置文件是指定义了YOLOv8网络结构的文件,包括卷积层、池化层、激活函数等网络组件的参数。通过解析网络配置文件,YOLOv8可以自动构建出目标检测网络。数据增强的配置文件则是指针对输入图像进行一系列处理的配置文件,如随机裁剪、缩放、翻转等。这些处理可以增加数据的多样性,提高网络的泛化能力。通过解析数据增强的配置文件,YOLOv8可以自动应用相应的数据增强方法。 在YOLOv8中,YAML解析采用了第三方库pyyaml来实现。具体而言,程序首先读取YAML配置文件,然后通过pyyaml库将配置文件中的数据转化为python数据结构。之后,程序根据解析出来的结构构建出相应的网络或数据增强方法。需要注意的是,YAML文件中的缩进非常重要,程序会根据缩进来判断数据的层次结构。 综合来看,YOLOv8中的YAML解析扮演着重要的角色,为算法提供了灵活的网络配置和数据增强方式。通过深入理解YAML解析的原理和实现方法,我们可以更加熟练地使用YOLOv8,并能够针对具体问题进行定制化的网络和数据增强配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值