0

フラスコのpythonフレームワークを介してhttpリクエストを介してデータを渡し、pymongoの助けを借りてmongodbに挿入しようとしています。

私のコードは次のとおりです。

from flask import Flask, request
import json
from pymongo import MongoClient
from bson import json_util
from bson.objectid import ObjectId

#setting up the flask app
app=Flask(__name__)

#connecting to mongoDB
client=MongoClient('localhost', 27017)
db = client["test"] #db name
col=db["test"] #collection name

@app.route('/data/insert/', methods=['GET'])
def insert():
    if request.method == 'GET':
        result = request.data('docs')
        col.insert(result)
    return "it worked!\n"

if __name__=='__main__':
    app.run()

URLを介してデータを渡しています:

127.0.0.1:5000/data/insert/docs={"hello":"world"}

奇妙なことは、データを受け入れて、単純に文字列形式で返そうとすると吐き出すことさえあるということですが、私が見逃している方法で変換またはアクセスする必要があります。

Ps。ブラケットと二重引用符に適切なエスケープ文字を既に試しました。

4

1 に答える 1

2

result = request.data('docs')文字列を返していると思いますが、

insert文字列ではなく辞書が必要だと思います

おそらく、次のようなものです:

result = json.loads(request.data('docs'))

上記では、python の組み込みjsonライブラリを使用して、文字列を解析しdocsて python データ型に変換しようとしています。docsJSON が無効な場合は、必ずケースを処理してください。

于 2013-10-16T02:18:20.250 に答える