pyyaml使用_pam模块

pyyaml使用_pam模块pyyaml模块

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、pyyaml 简介及简单使用

1、pyyaml 模块的安装

pip3 install pyyaml

2、pyyaml 模块的简单使用

我们初始化一个yaml文件如下:

house:
  family:
    name: Doe
    parents:
      - John
      - Jane
  address:
    number: 34
    street: Main Street

读取 yaml 文件:

import yaml
f = open('example.yml',encoding="utf-8")
x = yaml.load(f)
print(x)

执行结果如下:

{ 
   'house': { 
   'family': { 
   'name': 'Doe', 'parents': ['John', 'Jane']}, 'address': { 
   'number': 34, 'street': 'Main Street'}}}

解析 yaml 文件:

# coding=utf-8
import yaml


project = { 
   'name': 'Silenthand Olleander',
            'race': 'Human',
            'traits': ['ONE_HAND', 'ONE_EYE']
            }
ret = yaml.dump(project)
print(ret)
print(type(ret))

project = ("a", "b", "c")
ret = yaml.dump(project)
print(ret)
print(type(ret))

project = { 
   "a": 1,"b": 2}
ret = yaml.dump(project)
print(ret)
print(type(ret))

执行结果如下:

name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]

<class 'str'>
!!python/tuple [a, b, c]

<class 'str'>
{ 
   a: 1, b: 2}

<class 'str'>

二、使用 pyyaml 配置不同的工作环境

假设我们有两个不同的工作环境,开发环境 dev 和生产环境 prod,在这两个不同的环境下有部分环境配置是有区别的,我们可以使用 pyyaml 将他们配置在一起,解析时再加以区分。

pyyaml 文件如下所示:

active: dev
dev:
  MainQueue: main_queue_dev
prod:
  MainQueue: main_queue_prod

其中,active: dev 表示当前的工作环境是 dev

pyyaml 文件解析脚本如下所示:

def load_environment():
    f = open('params.yaml', encoding='utf-8')
    x = yaml.load(f)
    if x['active'] == 'dev':
        return x['dev']
    elif x['active'] == 'prod':
        return x['prod']

执行结果:

{ 
   'MainQueue': 'main_queue_dev'}

完整示例代码地址:示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194167.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Php面试问题_php面试常问面试题

    Php面试问题_php面试常问面试题1、css的定位有哪些方式?以及用法position在英文中表示“位置”的意思 它主要是用于实现对元素的定位在CSS中定位分为三种:position:fixed         固定定位position:relatvie      相对定位position:absolute      绝对定位position:static      无特殊定位 (默认值)。注意:   在使用定位属…

    2022年8月27日
    3
  • 点击展开显示折叠内容

    点击展开显示折叠内容

    2022年2月15日
    148
  • UINT16_uint16是什么数据类型

    UINT16_uint16是什么数据类型记得之前在刷笔试题的时候就看见过这个问题,发现当时上网百度后又忘了。最近在看CryEngine3引擎代码的时候又晕了,趁现在赶紧记下来~在查看CE3的代码时我发现了这个变量,TFlowNodeIdm_flowNodeId;心想这是什么鬼?(请理解一个菜鸟没啥经验)然后果断在VS下按F12查看定义,连着按了几次我终于捋清其中的奥妙。所以我干脆把uint8,uint32

    2022年9月7日
    0
  • Altium Designer 13 只能选中当前层元器件

    Altium Designer 13 只能选中当前层元器件今天打开一个ad工程,发现pcb只能选中当前层原件,其它层原件都不能选中。如图所示:这个问题以前都没遇到过,百度后发现是视图配置里面设置了。首先右键pcb文件如下图所示:然后会弹出下面的窗口:在单层模式的位置可以设置如何显示。如果需要取消这些设置 可以按下快捷键shift+s

    2022年7月15日
    41
  • qtcpsocket断开_QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)…「建议收藏」

    qtcpsocket断开_QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)…「建议收藏」简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况客户端网线断开客户端网络断开客户端通过HTTP代理连接服务器,代理机器断开代理客户端通过HTTP代理连接服务器,代理机器的网络断开客户端通过HTTP代理连接服务器,代理机器的网线断开服务器断开同时对于以上六种情况又分为连接服务器之…

    2022年9月7日
    0
  • 漫画什么是分布式事务_分布式事务框架

    漫画什么是分布式事务_分布式事务框架点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!————— 第二天 —————————————————假如没有分布式事务在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子:上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调用库存服务,进行扣除库存,再调用订

    2022年10月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号