2011-06-29 11 views
0

Pythonデータ構造のファイルにコードを生成する方法はありますか? NAME_OF_VARIABLE = {キー:値、キー:値}のようにPythonデータ構造を自己構築するコードを取得する

及びI辞書を持っていた場合

は、例えば、それが持つファイルを作成します。これは私のテスト用にたくさんのデータ構造を手作業でコーディングしたくない場所でのテストです。手動で編集できるテンプレート構造をいくつか作成したいと思っています。

ありがとうございます。

答えて

3
単純なデータ構造など dictについては

listsetと内蔵のあなたがrepr()を使用することができ、物事その他:

>>> d = {'a': 2, 'b': 3, 'c': 4} 
>>> repr(d) 
"{'a': 2, 'c': 4, 'b': 3}" 
>>> l = range(10) 
>>> repr(l) 
'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]' 
>>> s = set(range(10)) 
>>> repr(s) 
'set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])' 

Documentationは言う:「」、多くのタイプの場合、この関数は文字列を返すようにしようとしますeval() ''に渡すと同じ値のオブジェクトが生成されます。

+0

うわー、それはまさに私が必要なものです、ありがとう! – NycCompSci

1

はい、JSONのシリアル化を使用できます。 2.6以来、Pythonは標準ライブラリjsonモジュールを所有しており、これを使用することは本当に簡単です:

>>> import json 
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) 
'["foo", {"bar": ["baz", null, 1.0, 2]}]' 

あなたはファイルにこの文字列を配置することができます。後でそれをjson.loadsというPythonデータ構造に戻すことができます。


しかし、私はまた別にあなたの質問からこの引用に対処したいと思います:私は手動で私のテストのために多くのデータ構造の をコーディングする必要はありません

と I 「むしろ、私は手動で編集することができ、いくつかのテンプレート 構造を作成しますdは。

これはテスト目的であるならば、私は真剣にPythonコードのドメインで&データ構造を滞在考慮し、Pythonコードをオンザフライでテストデータを生成します。これの詳細はあなたデータの正確な性質に大きく依存しているが、このようなデータ構造を書くことは、手動で歓迎作業ではありません。あまりにも速く退屈になり、コードをうまくカバーできなくなります。

+0

または... XML? *身震い* –

+1

@pst:あなたが必要とするすべてのPythonのデータ構造の直列化され、JSONは私がXML ;-) –

+0

よりもはるかに良い選択です:ええ。ありがたいことに、XMLはPythonハッカーの間ではあまりよくありません –

1

別のヒトにやさしいシリアライゼーションフォーマットはPyYAMLモジュールを介してアクセスすることができるYAMLある....

...または、quick'n'dirty import POPを含むモジュール(「プレインオールドPython用");-)

ハッピーコーディング。

関連する問題