2011-12-14 15 views
0

私はC#で単純な要素のコレクションを持っています。要素は次のようになります。コレクションをシリアル化してPythonで解析する

public class Element 
{ 
    public string AName { get; private set; } 

    public string PName { get; private set; } 

    public string Value { get; set; } 
} 

このコレクションをPythonスクリプトに渡す必要があります。そして、各要素のためのPythonでは、私はFunc(AName、PName、Value)のような関数を呼び出す必要があります。

elements = json.loads(JSON) 
for element in elements: 
    Func(routeLayer, element['AName'], element['PName'], element['Value']) 

しかし、今では私はPythonのJSONモジュールを使用することができないことが判明:私はC#でとPythonの書き込みコードでJSONにコレクションをシリアル化することでこれをやりました。ですから、このコレクションをスクリプトに渡すための新しい方法が必要です。追加のモジュールを使用しないでください。私はPythonで本当のnoobです。私が想像することができるソリューションは醜いです。アドバイスをいただけますか?

答えて

1

のために見つけたものを何か、です。 C#では、3つの文字列をセパレータ(たとえば、 "foo,bar,baz"

そしてPythonで、情報は

aName,pName,value = element.split(',') 

PSとデシリアライズすることができます。好奇心の理由から、標準ライブラリのモジュールをインポートできないのはなぜですか?

+0

ええ、私の現在のアイデアは2つの区切り記号を使用することです:1つは私のクラスの内側で、もう1つはコレクション要素を区切ることです。 このスクリプトは、モデルの一部であり、エンジンでは、このモジュールを実行するとPythonスクリプトでモジュールを使用できないバグです... – Seekeer

0

Pythonでも利用できる最も一般的な標準はXMLです。このオプションを検討しましたか?

更新: XmlSerializerをC#で使用すると、XMLとしてシリアル化できます。そしてhereは、あなたがANamePNameValueのための文字列の中で、あなたはセパレータとしてその文字を使用することができませんされて保証することができ、いくつかの文字がある場合、私は、Python

+0

おかげで、しかし、Pythonのガイドで速い一見はXMLのためにいくつかのモジュールは、同様に使用されなければならないことが示されている: '輸入xml.sax' いけないと思いますが、それが動作すること。 – Seekeer

関連する問題