0

JavaScript を使用してリストを作成していますが、結果は次のようになります。

[['14', '15'], ['10']]

私のAjax呼び出しは、ここにあるFlaskサービスにPOSTを実行しています:

@app.route('/search/results', methods = ['POST'])
def results():

    key = request.form['key']
    filters = request.form.get('filters', None)

投稿でフィルターを取得できます。印刷すると、「本来あるべき」とまったく同じように見える適切な「文字列」の結果が得られます。ただし、それらを list() にキャストする必要があります。私はPythonに比較的慣れていないので、おそらくこれについて間違った方法で進んでいます。

私が次のことをした場合:

if filters is not None:
    for f in filters:
        print f

私はこれを取得します(結果を簡略化しました):

[
[
"
1
4
"
]
]

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

通常、HTTPを介して送信されるすべてのデータは、バイトまたは文字列です。

リストを処理できる形式を使用する必要があります。JSONはそのような形式であり、AJAX呼び出しから実際にJSONデータをPOSTする場合、flaskはそれを直接サポートします。

key = request.json['key']
filters = requests.json.get('filters', [])

これは、JavaScript構造を投稿したことを前提としています。

{'key': 'somekey', 'filters': [['14', '15'], ['10']]}
于 2013-01-15T17:57:10.920 に答える