[python] YAML
2922 ワード
YAMLは直感的にコンピュータで認識できるデータシーケンス化フォーマットであり、人間に読みやすく、スクリプト言語と対話しやすい.YAMLはXMLに似ていますが、構文はXMLよりずっと簡単で、配列やhash可能なデータに変換する場合には簡単で効果的です.YAML基本構文規則は次のとおりです.大文字小文字敏感 階層関係 をインデントで表す.インデント時にTabキーは使用不可、スペース のみ使用可能インデントされたスペースの数は重要ではありません.同じレベルの要素の左側を揃えるだけで になります. YAMLがサポートするデータ構造は3種類あります.オブジェクト:キー値ペアの集合であり、マッピング/ハッシュ/辞書(dictionary) とも呼ばれる.配列:シーケンス/リスト とも呼ばれる順序付けされた値のセット純量(scalars):単一で再分割できない値 ≪オブジェクト|Objects|emdw≫:オブジェクトのキー値ペアのセットで、コロン構造で表されます.
animal: pets
連語線の先頭の行のセットで、配列を構成します.
オブジェクトと配列を組み合わせて使用し、複合構造を形成できます.
文字列のデフォルトでは、引用符は使用されません.
str:これは1行の文字列です
文字列にスペースまたは特殊文字が含まれている場合は、引用符で囲む必要があります.
str:'内容:文字列'
python yamlの使用
Excample.iniファイルは次のとおりです.
result:
yaml.dumpが受信した2番目のパラメータは必ず開いているテキストファイルまたはバイナリファイルで、yaml.dumpは生成したyamlドキュメントをファイルに書きます.
yaml.dump_all()複数のセグメントを1つのファイルに出力
ref: link
#
コメントの現在の行を示すanimal: pets
連語線の先頭の行のセットで、配列を構成します.
- Cat
- Dog
- Goldfish
オブジェクトと配列を組み合わせて使用し、複合構造を形成できます.
languages:
- Ruby
- Perl
- Python
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
文字列のデフォルトでは、引用符は使用されません.
str:これは1行の文字列です
文字列にスペースまたは特殊文字が含まれている場合は、引用符で囲む必要があります.
str:'内容:文字列'
python yamlの使用
Excample.iniファイルは次のとおりです.
house:
family:
name: Doe
parents:
- John
- Jane
address:
number: 34
street: Main Street
import yaml
f = open('example.ini',encoding="utf-8")
x = yaml.load(f) # ,
print(x)
print(x["name"])
print("---------")
aproject = {'name': 'Silenthand Olleander',
'race': 'Human',
'traits': ['ONE_HAND', 'ONE_EYE']
}
ret = yaml.dump(aproject)# python yaml
print(ret)
aproject = ["a","b","c"]
ret = yaml.dump(aproject)
print(ret)
aproject = ("a","b","c")
ret = yaml.dump(aproject)
print(ret)
aproject = {"a":1,"b":2}
ret = yaml.dump(aproject)
print(ret)
result:
{'house': {'family': {'name': 'Doe', 'parents': ['John', 'Jane']}, 'address': {'number': 34, 'street': 'Main Street'}}}
---------
name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]
[a, b, c]
[a, b, c]
{a: 1, b: 2}
yaml.dumpが受信した2番目のパラメータは必ず開いているテキストファイルまたはバイナリファイルで、yaml.dumpは生成したyamlドキュメントをファイルに書きます.
import yaml
aproject = {'name': 'Silenthand Olleander',
'race': 'Human',
'traits': ['ONE_HAND', 'ONE_EYE']
}
f = open(r'E:\AutomaticTest\Test_Framework\config\config.yml','w')
print(yaml.dump(aproject,f))
yaml.dump_all()複数のセグメントを1つのファイルに出力
import yaml
obj1 = {"name": "James", "age": 20}
obj2 = ["Lily", 19]
with open(r'E:\AutomaticTest\Test_Framework\config\config.yml', 'w') as f:
yaml.dump_all([obj1, obj2], f)
ref: link