2011-07-29 9 views
3

x-www-form-urlencodedフォームデータからのクエリ文字列を指定します。x-www-form-urlencodedクエリ文字列をdictに変換する

data[foo]=bar&data[bar]=baz 

私は、このような

{'data': {'foo': 'bar', 'bar': 'baz'}} 

あるいはそれに近いものとして、Pythonの辞書に翻訳したいと思います。基本的には、このフォームのデータはPHPの$ _POST変数で処理される方法に似て何か:

Array 
(
    [data] => Array 
     (
      [foo] => bar 
      [bar] => baz 
     ) 

) 

しかしurlparse.parse_qsは()私だけを与える:

{'data[bar]': ['baz'], 'data[foo]': ['bar']} 

それは世界の終わりではありません。私は簡単に値をdata[bar]などと呼ぶことができます。私はこの種の解析を実行するモジュールがないことに少し驚きました。誰か知っていますか?

ボーナスの質問:おそらくの理由は、なぜそのようなライブラリがPythonには存在しないのでしょうか?フォームデータを複数レイヤーの配列に変換しても、何とか間違っていますか?

答えて

-2
  • PHPは、インデックス付きフォーム変数をディープレベルの配列に自動的にデコードします。 PHP doc
  • これは、httpまたはWeb標準ではなく、PHPの機能です。
  • HTTP RFCには一般的な「配列」構造体が定義されていないためです。 []またはキー文字列のための他の英数字以外の文字使用して
  • とは、私たちはより良いだけでフラットキー=値の形式

    • を使用したい、だから、本当に悪い癖

    ですまたは、クライアント側とサーバー側の両方で、ユーザー定義データ形式(PHPのように)でマルチレベル配列をコード/デコードしてみてください。

  • このユーザー定義の形式でhttp APIを提供している場合、お客様には多くのことを説明する必要があります。
関連する問題