2012-01-19 8 views
2

は、URLエンコード:関心のPythonで安全にurlencode-ed辞書を評価するには?私は私に次のデータを送信し、オンラインサービスと通信する必要があり

data_to_process = {...} 
args = {'args0': data_to_process, 'action': 'save'} 

result = urllib2.urlopen(..., urllib.urlencode(args), ...) 

主なデータはdata_to_processディクショナリに格納されます。文字列、数値、ブール値しか含まれていない元の辞書を取り戻したいと思います。どのようにこれを達成することができますか?

私は

eval(dict_str,{'__builtins__': None}) 

を試してみたが、これはFalse値(と誰が他に何を知っている)で失敗しました。

ありがとうございます!

答えて

3

使用ast.literal_eval

>>> from ast import literal_eval 
>>> test = repr({"ham": True, 42: "spam", "foo": "bar"}) 
>>> test 
"{42: 'spam', 'foo': 'bar', 'ham': True}" 
>>> literal_eval(test) 
{42: 'spam', 'foo': 'bar', 'ham': True} 
3

あなたはサービスがあなたにJSONを送信していないことを確認していますか?この場合、組み込みのjson.loads()関数(Python 2.6以降)を使用して解析できます。

+0

はい、私は元のコード(OSSプロジェクト)にアクセスできますが、私はコミッタではなく、動作を変更しません。 – Akasha

関連する問題