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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Integer比较

    Integer比较

    2022年1月5日
    54
  • 网上主要的搜索工具_互联网主要是做什么的

    网上主要的搜索工具_互联网主要是做什么的我的一位朋友,用了10年的电脑。作为一名老网民,他的信息检索能力让我诧异。每次需要找点图片、网站、研究报告甚至小电影,他都需要花费很多时间,在各个论坛、网站里疲于奔波。因为他只会用百度!然而,世界上不仅仅只有一类搜索引擎。百度或者google虽然可以提供海量的信息,但是信息的甄选是一件非常麻烦的事情。所以,在这些通用引擎之外,我们

    2022年9月10日
    0
  • android之来电自动拒接并自动回复短信_上课模式app「建议收藏」

    上课的时候老师说总是错过电话,对方打来没人接还一遍遍的打,觉得可以有个app在上课期间自动拒接电话,并自动回复短信过去.当然了,需要权限的.尝试做了个雏形出来.界面如下:主要代码如下:package jason.teacher;import java.lang.reflect.Method;import java.util.HashMap;import ja

    2022年3月10日
    146
  • react路由权限设置

    react路由权限设置说明在react项目中有时我们的一些页面需要权限才能访问,这里以需要登录才能访问进行的设置在这里可以看到权限页面和关于页面是需要登录才能访问的importReact,{Component,useState,useEffect,useRef}from’react’;import{HashRouterasRouter,Route,NavLink,Redirect,Switch,useHistory}from”react-router-dom”;classAPP

    2022年5月6日
    173
  • BaseAdapter导致notifyDataSetChanged()无效的四个原因及处理方法

    BaseAdapter导致notifyDataSetChanged()无效的四个原因及处理方法前一段时间在做一个项目的时候遇到了一个关于BaseAdapter的notifyDataSetChanged()方法无效问题,当时在网上搜了一个解决方法,今天又遇到了一个类似的问题,我在这里做个记录,防止以后再次发生,或者其他朋友再次遇到。一、ScrollView中嵌套ListView或GridView原因:两个的滚动监听冲突解决方法:重写ListView或GridViewpackagecom.m

    2022年6月18日
    22
  • accept-encoding导致乱码问题

    accept-encoding导致乱码问题Accept-Encoding:gzip,deflate这个头信息是告诉服务器客户端所支持的压缩方式(然而数据压缩了但没有自动转,就会导致乱码)没有这个头信息说明客户端不支持压缩,要求不压缩直接返回文本

    2022年7月15日
    12

发表回复

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

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