0

我正在尝试通过flask 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"}

奇怪的是,当我尝试以字符串格式简单地返回数据时,它正在接受数据甚至将其吐出,但它需要以我缺少的方式进行转换或访问。

附言。我已经为括号和双引号尝试了正确的转义字符。

4

1 回答 1

2

我猜这result = request.data('docs')是返回一个字符串,

我相信insert需要字典,而不是字符串

也许,像这样的东西:

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

以上使用python的内置json库来尝试将docs字符串解析为python数据类型。docs如果JSON 无效,请记住处理这种情况!

于 2013-10-16T02:18:20.250 回答