python with open as yaml_实战:Python与YAML

实战对网络工程师而言有一定难度,如果有迷惑的地方,请不要灰心,请一定牢记:万事开头难、中间难、结尾难

user.yaml

id: 3242

first_name: 'Ray'

last_name: 'Smith'

birth_date: 1979-08-15

address:

- street: '94873 Ledner Rue'

city: 'Royal Oak'

postal_code: 44663

state: 'OH'

primary: 1

- street: '832 William Ave'

city: 'Elnaville'

postal_code: 17319

state: 'EL'

primary: 0

score: 18.3

Py_Yaml.py

import ruamel.yaml

class User:

def __init__(self):

self.id = None

self.first_name = None

self.last_name = None

self.birth_date = None

self.address = None

self.score = None

# 打印对象

def __repr__(self):

return str(self.__dict__)

if __name__ == "__main__":

#########################################

# Procedure 1 #

#########################################

print('##################')

print('###### YAML ######')

print('##################')

# 只读方式打开user.yaml文件

with open('user.yaml', 'r') as stream:

#使用safe_load方式加载stream

user_yaml = ruamel.yaml.safe_load(stream)

print("输出user_yaml变量的类型:")

print(type(user_yaml))

#输出类型应为字典

print('----------------------')

# 遍历user_yaml的键并打印

print('user_yaml的键:')

for key in user_yaml:

print(key)

print('----------------------')

user = User()

# 将值从user_yaml分配给对象user

user.id = user_yaml['id']

user.first_name = user_yaml['first_name']

user.last_name = user_yaml['last_name']

user.birth_date = user_yaml['birth_date']

user.address = user_yaml['address']

user.score = user_yaml['score']

# 打印user对象

print('User object:')

print(user)

#输出结果如图所示

##################

###### YAML ######

##################

输出user_yaml变量的类型:

----------------------

user_yaml的键:

id

first_name

last_name

birth_date

address

score

----------------------

User object:

{'id': 3242, 'first_name': 'Ray', 'last_name': 'Smith', 'birth_date': datetime.date(1979, 8, 15), 'address': [{'street': '94873 Ledner Rue', 'city': 'Royal Oak', 'postal_code': 44663, 'state': 'OH', 'primary': 1}, {'street': '832 William Ave', 'city': 'Elnaville', 'postal_code': 17319, 'state': 'EL', 'primary': 0}], 'score': 18.3}

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值