を一覧表示するには、クエリ文字列を解析:はPythonは、私は次のようなサーバーにデータを送信するフォームを持っている
videos[0][type]=Vimeo&
videos[0][moments][0][time]=11&
videos[0][moments][0][lng]=111&
videos[0][moments][0][lat]=111&
videos[0][moments][1][time]=222&
videos[0][moments][1][lng]=222&
videos[0][moments][1][lat]=222&
videos[1][type]=YouTube&
videos[1][moments][0][time]=111&
videos[1][moments][0][lng]=111&
videos[1][moments][0][lat]=111
...
私はフラスコを使用していますが、私はvideos
とmoments
をループできるようにしたいと思いますそれをする方法がないように思えます。私はGoogleで図書館を探してみましたが、私のGoogle-fuは今夜は弱いです。
提案がありますか?ありがとう!
EDIT:
:ように見えるクエリの{'map': {'title': 'orange'}, 'videos': {'1': {'moments': {'0': {'lat': '111', 'lng': '111', 'time': '111'}}, 'type': 'YouTube'}, '0': {'moments': {'1': {'lat': '222', 'lng': '222', 'time': '222'}, '0': {'lat': '111', 'lng': '111', 'time': '11'}}, 'type': 'Vimeo'}}}
:lazy1の答えに基づいて、私はハッシュを生成します
def add(root, path, value):
for part in path[:-1]:
root = root.setdefault(part, {})
root[path[-1]] = value
def parse(s):
items = {}
for key, value in parse_qsl(s):
parts = filter(None, re.split('[\[\]]', key))
name = parts[0]
if name not in items:
items[name] = {}
add(items[name], parts[1:], value)
return items
に彼/彼女のコードを修正しました
map[title]=orange&
videos[0][type]=Vimeo&
videos[0][moments][0][time]=11&
videos[0][moments][0][lng]=111&
videos[0][moments][0][lat]=111&
videos[0][moments][1][time]=222&
videos[0][moments][1][lng]=222&
videos[0][moments][1][lat]=222&
videos[1][type]=YouTube&
videos[1][moments][0][time]=111&
videos[1][moments][0][lng]=111&
videos[1][moments][0][lat]=111
...
ありがとうございます!私はそのライブラリを使用すると思う。私は名前の形式が気に入らないが、私はそれで暮らすことができると思う。 :) – Haochi