注意:
冒号后面,要跟一个空格。
字符串默认不使用引号表示(也可以使用引号).
如果字符串之中包含空格或特殊字符,需要放在引号之中.
yaml -> json:
age: 18 score: 98.5 name: 张三 firstname: "jack ma"
{ "age": 18, "score": 98.5, "name": "张三", "firstname": "jack ma" }
数组/列表,有2种写法。
yaml -> json:
subjects: ["语文", "数学", "英语"] language: [Java, python, C++] fruits: - banana - apple - orange
{ "subjects": [ "语文", "数学", "英语" ], "language": [ "Java", "python", "C++" ], "fruits": [ "banana", "apple", "orange" ] }
yaml -> json:
food: - ["青苹果", "红苹果", "黄苹果"] - - 黄瓜 - 西瓜 - 冬瓜 - - 小麦 - 大米 - 玉米
{ "food": [ [ "青苹果", "红苹果", "黄苹果" ], [ "黄瓜", "西瓜", "冬瓜" ], [ "小麦", "大米", "玉米" ] ] }
yaml -> json:
person: name: 张三 age: 18 gender: 男
{ "person": { "name": "张三", "age": 18, "gender": "男" } }
为了保持内容的简洁,避免过多重复的定义,YAML 提供了由锚点标签“&”和引用标签“*”组成的语法。
对于重复的数据,可以单独写到yaml文件的开头位置,其它的地方用到的可以用*引用。
&用来建立锚点,<<表示合并到当前数据,*用来引用锚点。
yaml -> json:
address: &MyAddress city: beijing street: tuanjiehu number: 1004 Person: name: zhangsan age: 18 <<: *MyAddress
{ "address": { "city": "beijing", "street": "tuanjiehu", "number": 1004 }, "Person": { "name": "zhangsan", "age": 18, "city": "beijing", "street": "tuanjiehu", "number": 1004 } }
yaml -> json:
students: - name: zhangsan age: 18 gender: 男 - name: lisi age: 20 gender: 女
{ "students": [ { "name": "zhangsan", "age": 18, "gender": "男" }, { "name": "lisi", "age": 20, "gender": "女" } ] }
yaml -> json:
students: name: - zhangsan - sili - wangwu age: - 18 - 17 - 20 scores: - 89 - 98 - 100
{ "students": { "name": [ "zhangsan", "sili", "wangwu" ], "age": [ 18, 17, 20 ], "scores": [ 89, 98, 100 ] } }
pip3 install pyyaml
先用open方法读取文件数据,再通过load方法转成字典,这个load跟json里面的load是相似的
# coding:utf-8
import yaml
def read(path):
with open(path, 'r') as file:
data = file.read()
# result = yaml.load(data)
result = yaml.load(data, Loader=yaml.FullLoader)
return result
if __name__ == '__main__':
result = read('test.yaml')
print(result)