1

私はpyyamlを使用しており、file.ymlをロードしています

stream = open("file.yml", "r")
results = yaml.load_all(stream)

results にジェネレーター オブジェクトが含まれるようになりました。

次に、これを処理しようとしています:

for key, value in results:
    print(key, "->", value)

私のfile.ymlに複数の「yaml要素」がある場合、これはうまくいきます。例:

フー:バー

こんにちは世界

しかし、file.yml に「yaml 要素」が 1 つしかない場合、これは機能しません。例:

フー:バー

エラーは次のとおりです。ValueError: need more than 1 value to unpack

私はpython 3を使用しています

どうすればこれを解決できますか? file.yml には 1 つ以上の要素を含めることができます。

4

2 に答える 2

2

resultsは辞書のリストなので、それを反復処理する代わりに、辞書を反復処理する必要があります。

for dictionary in results:
    for key, value in dictionary.items():
        print(key, "->", value)

したがって、辞書ではなくリストから解凍していたため、キーをある辞書に割り当て、値を別の辞書に割り当てようとしていました。dict.items()タプルの最初の位置にキー、もう一方の位置に値を持つタプルのリストを返します。

于 2013-09-21T11:33:10.857 に答える