前戯
YAML言語の設計目標は、人間の読者を容易にすることです。それは本質的に、共通のシリアル・データ・フォーマットです。
次のようにその基本的な構文規則があります。
- YAMLの大文字と小文字を区別し;
- 使用インデントは階層を表し;
- インデントスペースタブを使用することができない、スペースの数は、同じレベル左(典型的には二つまたは四つのスペース)を必要としません
行の最後は、パーサによって無視されるまで、#この文字からコメントを示します。
YAMLのデータ構造は3でサポートされています。
オブジェクト:キーのセット、またマッピング(マッピング)として知られている/ハッシュ(ハッシュ)/ディクショナリ(辞書)
配列:値のセットが順に配置され、また、公知の配列(シーケンス)/リスト(一覧表)
スカラー(スカラー):個々の値を分割することができません
配列
接続詞を開始行ラインのセットは、アレイを形成します。
-猫
-犬
-金魚
次のようにのpythonに。
[ '猫'、 '犬' 、 '金魚']
オブジェクト
コロンで表される構造を使用してのキーと値のオブジェクトのセット。
動物:ペット
コロンの後にスペースが存在する必要があります
JavaScriptが次のなっ。
{動物: 'ペット'}
PythonはYAMLを読みます
インストールPyYAMLとライブラリー
ピップインストールPyYAMLと
データのシナリオ:
トムSmith37の歳、彼は25歳の妻、ジェーン・スミスを、持っている、と彼は2人の子供、15歳のジミー・スミスという男を、持っています。ジェニー・スミスと呼ばれる別の、12歳
family.yaml
名前:トム・スミス 年齢: 37 配偶者: 名:ジェーン・スミス 年齢: 25 childen: - 名前:ジミー・スミス 年齢: 15 - 名前:ジェニー・スミス 年齢: 12
Pythonのファイル読み込み
インポートYAML ファイル =オープン(' family.yaml '、" R " ) データ = yaml.load(ファイル、ローダ= yaml.FullLoader) 印刷(データ) #{ '名前': 'トム・スミス'、 '年齢':37 '配偶者' { '名前': 'ジェーン・スミス'、 '年齢':25}、 'childen':[{ '名前': 'ジミー・スミス'、 '年齢':15}、{ '名前': 'ジェニー・スミス」、 '年齢':12}]} 印刷(データ[ ' 名前' ]) #トム・スミス プリント(データ[ ' 年齢']) #37 プリント(データ[ ' 配偶者' ] [ ' 名前' ]) #ジェーン・スミスの 印刷(データ[ ' 配偶者' ] [ ' 年齢' ]) #25 プリント(データ[ ' childen ' ]) #[{'名前': 'ジミー・スミス'、'年齢':15}、{'名前': 'ジェニー・スミス'、 '年齢':12}] 印刷(データ[ ' childen ' ] [0] [ ' 名前' ]) #ジミースミス プリント(データ[ ' childen '] [0] [ " 年齢' ]) #15 プリント(データ[ ' childen ' ] [1]〜[ ' 名前' ]) #ジェニースミス プリント(データ[ ' childen ' ] [1]〜[ ' 年齢' ]) #12
YAMLフォーマットへのPythonのデータ型
私たちは型にYAMLから読み取るyaml.load、パイソンを使用の上、我々はタイプYAMLのPythonの型にダンプを使用することができます
インポートYAML LIS = [ ' 名前'、' 年齢'、' ジョブ' ] DIC = { ' IT ':' テスト'、' DEV ':' UI ' } プリント(yaml.dump(LIS)) プリント(yaml.dump (DIC))
結果:
- 名前 - 年齢 - 仕事 IT:テスト DEV:UI
YAMLを書き込まれたデータファイルのPythonの種類
輸入YAML LIS = { ' 名':' トム・スミス'、' 年齢':37、' 配偶者':{ ' 名':' ジェーン・スミス'、' 年齢':25 }、 ' childen ':[{ ' 名前':' ジミー・スミス'、' 年齢':15}、{ '名前":' ジェニー・スミス'、' 年齢':12 }]} DIC = { ' IT ':' テスト'、' DEV ':' UI ' } (オープンと' family.yaml '、' W ' :Fなど)、 F。書き込み(yaml.dump(LIS)) f.write(yaml.dump(DIC))
結果:
YAML能力プロファイルにパッケージ化
desired_caps.yaml
platformName:アンドロイド #注意要有空格 platforVersion:9.1.1 DEVICENAME: 127.0.0.1:62001 アプリ:C:\アプリケーション\ csca3。1.0 の.apk appPackage:com.csca appActivity:com.csca.ui.activity.SplashActivity Moresheth:偽 IP:アドレス127.0.0.1 ポート: 4723
コンフィギュレーション・ファイルYAMLの内容を読みます
インポートYAML から appium インポートwebdriverを ファイル =オープン(' desired_caps.yaml '、' R ' ) データ = yaml.load(ファイル、ローダ= yaml.FullLoader) desired_caps = {}は [desired_caps ' platformName ' ] =データ[ ' platformName ' ] desired_caps [ ' platforVersion ' ] =データ[ ' platforVersion ' ] desired_caps [ ' DEVICENAME '] =データ[ ' DEVICENAME ' ] desired_caps [ ' アプリ' ] =データ[ ' アプリ' ] desired_caps [ ' appPackage ' ] =データ[ ' appPackage ' ] desired_caps [ ' appActivity ' ] =データ[ ' appActivity ' ] desired_caps [ ' NORESET ' ] =データ[ ' NORESET ' ] ドライバ = webdriver.Remote(' のhttp:// '+のStr(日付[' IP ' ])+ ' :' + STR(データ[ ' ポート' ])+ ' / WD /ハブ'、desired_caps)