-2

このプロジェクトの Ruby バージョンはマップと設定に YAML を使用しますが、OrderedDict は Python 3 用に更新されていないため、コードで OrderedDict を使用しようとしています。

Ruby バージョンのプロジェクトは、次のファイルを使用します: https://mega.co.nz/#!zhYRwA4B!HceqC3-NmmN44U70--jMxiAWQ4wz5MdAeilteKAOnSM

インポート行を次のように変更しました。

from collections import UserDict
from collections import MutableMapping as DictMixin

v3 が iterkeys を使用しないことは既に知っています。

iterkeys = DictMixin.iterkeys
itervalues = DictMixin.itervalues
iteritems = DictMixin.iteritems

変更方法の例をたくさん見てきましたが、ここでの使用方法がわかりません。

おそらく、Python 3 で YAML ファイルをサポートするために何か他のものを使用する必要がありますか?

編集: ファイルを yaml.py と呼びました。私はそれをすべきではありませんでした。また、気に入らないファイルパスもありました。私はそれを削除しましたが、動作します。

編集 2: 質問を台無しにしてしまったことに気付きました。YAML ではなく、Python の OMAP に関するものだったはずです。そのために別の質問を開きます。助けてくれてありがとう。

4

1 に答える 1

0

ステップバイステップ:

  1. Python 3 vitrtualenv を作成する

    mkvirtualenv -p python3 testyaml
    
  2. virtualenv内にpyamlをインストールする

    pip install pyaml
    
  3. ここでいくつかの yaml ファイルを作成します ( https://en.wikipedia.org/wiki/YAML#Examplesの例):

    receipt:     Oz-Ware Purchase Invoice
    date:        2012-08-06
    customer:
        given:   Dorothy
        family:  Gale
    
    items:
        - part_no:   A4786
          descrip:   Water Bucket (Filled)
          price:     1.47
          quantity:  4
    
        - part_no:   E1628
          descrip:   High Heeled "Ruby" Slippers
          size:      8
          price:     100.27
          quantity:  1
    
    bill-to:  &id001
        street: |
                123 Tornado Alley
                Suite 16
        city:   East Centerville
        state:  KS
    
    ship-to:  *id001
    
    specialDelivery:  >
        Follow the Yellow Brick
        Road to the Emerald City.
        Pay no attention to the
        man behind the curtain.
    
  4. そしてpythonスクリプト

    import yaml
    
    d = yaml.load(open('foo.yaml'))
    
    print(d.keys())
    print(d.values())
    
  5. スクリプトを実行

    python3 foo.py
    
  6. 結果を確認する

于 2013-09-09T13:10:13.217 に答える