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