Python (16)读取Yaml字符串格式为Dict

对dict类型数据与yaml串做转换

yaml字符串,如下文:

s = "
spring:
  cloud:
    nacos:
      discovery:
        server-addr: nacos.al:8848

dubbo:
  registry:
    address: nacos://nacos.al:8848
    check: false
  protocol:
    name: dubbo
    port: 10014 # dubbo provider才使用该端口,用以提供服务

al:
  job:
    executor:
      logpath: /data/logs/ad-biz-job/xxl-job/jobhandler
      port: 15001
  auth: 
    resource: 
      anon-auth-url: /**       

app:
  group: line8@s03
  business: ActivitiesOperation
  system: AdvertisingSystem
  owner: zhouxiong@akulaku.com
  
filter:
  text:
   FullChainSystemTypeHandler: '未满足全链路配置要求'
   RedPackageTypeHandler: '该用户未满足红包配置的限制条件'
   AdSpotPresentFreqFilter: '该广告所属广告位已经达到展示频率上线'
   AreaFilter: '地区拦截器'
   BanFilter: '屏蔽拦截器'
   CountryFilter: '国家拦截器'
   DeviceIdFilter: '设备号拦截器'
   TimeRangeFilter: '时间范围拦截器'
   VersionFilter: '版本号拦截器'
   CategoryComponentFilter: '不符合商品类目'
   CouponComponentFilter: '广告系统关联的优惠券不可用/用户无法领取'
   CustomPropertyComponentFilter: '配置的属性值与客户端传入的不匹配'
   KeywordComponentFilter: '关键词组件拦截器'
   PresentFreqComponentFilter: '该广告已经达到展示频率上限'
   PrizeComponentFilter: '广告系统关联的优惠券不可用/用户无法领取'
   SPUComponentFilter: '不符合广告配置的商品类目'
   UserVisibleFilter: '不符合广告配置的标签人群'
   LowerPriorityTypeHandler: '优先级过低'
"

实现代码如下,返回为dict类型

import yaml
   
def ReadYMLStrToDict(content: str):
    data = yaml.load(content,Loader=yaml.FullLoader)
    return data
    
ReadYMLStrToDict(s)

返回报文如下:

{'spring': {'cloud': {'nacos': {'discovery': {'server-addr': 'nacos.al:8848'}}}}, 'dubbo': {'registry': {'address': 'nacos://nacos.al:8848', 'check': False}, 'protocol': {'name': 'dubbo', 'port': 10014}}, 'al': {'job': {'executor': {'logpath': '/data/logs/ad-biz-job/xxl-job/jobhandler', 'port': 15001}}, 'auth': {'resource': {'anon-auth-url': '/**'}}}, 'app': {'group': 'line8@s03', 'business': 'ActivitiesOperation', 'system': 'AdvertisingSystem', 'owner': 'zhouxiong@akulaku.com'}, 'filter': {'text': {'FullChainSystemTypeHandler': '未满足全链路配置要求', 'RedPackageTypeHandler': '该用户未满足红包配置的限制条件', 'AdSpotPresentFreqFilter': '该广告所属广告位已经达到展示频率上线', 'AreaFilter': '地区拦截器', 'BanFilter': '屏蔽拦截器', 'CountryFilter': '国家拦截器', 'DeviceIdFilter': '设备号拦截器', 'TimeRangeFilter': '时间范围拦截器', 'VersionFilter': '版本号拦截器', 'CategoryComponentFilter': '不符合商品类目', 'CouponComponentFilter': '广告系统关联的优惠券不可用/用户无法领取', 'CustomPropertyComponentFilter': '配置的属性值与客户端传入的不匹配', 'KeywordComponentFilter': '关键词组件拦截器', 'PresentFreqComponentFilter': '该广告已经达到展示频率上限', 'PrizeComponentFilter': '广告系统关联的优惠券不可用/用户无法领取', 'SPUComponentFilter': '不符合广告配置的商品类目', 'UserVisibleFilter': '不符合广告配置的标签人群', 'LowerPriorityTypeHandler': '优先级过低'}}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值