我试图通过一个http请求通过flask python框架传递数据,并在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()
我通过网址传递数据:
127.0.0.1:5000/data/insert/docs={"hello":"world"}
奇怪的是,当我尝试简单地以字符串格式返回时,它正在接受数据甚至吐出数据,但它需要以我缺失的方式进行转换或访问。
聚苯乙烯。我已经为括号和双引号尝试了正确的转义字符。
答案 0 :(得分:2)
我猜测result = request.data('docs')
正在返回一个字符串,
我相信insert
需要字典,而不是字符串
也许,有点像:
result = json.loads(request.data('docs'))
上面使用python内置的json
库来尝试将docs
字符串解析为python数据类型。如果docs
无效JSON,请记得处理此案例。