flask 中的额外符号和 mongodb 输出
Extra symbol in flask and mongodb output
我的烧瓶代码是:
from flask import Flask
from flask.ext.pymongo import MongoClient
conn=MongoClient('127.0.0.1',27017)
app = Flask(__name__)
@app.route("/mongo1")
def find():
dbTest=conn['test']
dbDocs=[]
for fruit in dbTest['fruits'].find():
dbDocs.append(fruit)
return str(dbDocs)
@app.route("/")
def hello():
return "hello world!"
if __name__=="__main__":
app.run()
我在浏览器中得到的输出是:
[{u'_id': ObjectId('56ea449949b93626b14e2043'), u'name': u'apple'}, {u'_id': ObjectId('56ea444249b93626b14e2040'), u'name': u'apple', u'displayOrder': 1.0}, {u'_id': ObjectId('56ea446549b93626b14e2042'), u'name': u'banana', u'displayOrder': 2.0}, {u'_id': ObjectId('56ea445649b93626b14e2041'), u'name': u'orange', u'displayOrder': 3.0}, {u'_id': ObjectId('56ea7b03fae6cf4cb8d84635'), u'name': u'pinepple'}]
我的问题是为什么我在每个键值对之前都得到 "u"?
应该怎么做才能忽略这样的符号?
'u'表示它们是unicode字符串。由于您要通过 str()
将它们转换为字符串。有关这方面的更多信息,请参阅 Python Unicode encode/decode。
话虽如此,您也可以将其转换为 JSON:
from bson import json_util
@app.route("/mongo1")
def find():
dbTest=conn['test']
dbDocs=[]
for fruit in dbTest['fruits'].find():
dbDocs.append(fruit)
return json_util.dumps(dbDocs)
请注意,上面的代码片段使用 bson
模块转换为 json 而不是 json
模块,因为它需要能够解码 MongoDB ObjectID.
我的烧瓶代码是:
from flask import Flask
from flask.ext.pymongo import MongoClient
conn=MongoClient('127.0.0.1',27017)
app = Flask(__name__)
@app.route("/mongo1")
def find():
dbTest=conn['test']
dbDocs=[]
for fruit in dbTest['fruits'].find():
dbDocs.append(fruit)
return str(dbDocs)
@app.route("/")
def hello():
return "hello world!"
if __name__=="__main__":
app.run()
我在浏览器中得到的输出是:
[{u'_id': ObjectId('56ea449949b93626b14e2043'), u'name': u'apple'}, {u'_id': ObjectId('56ea444249b93626b14e2040'), u'name': u'apple', u'displayOrder': 1.0}, {u'_id': ObjectId('56ea446549b93626b14e2042'), u'name': u'banana', u'displayOrder': 2.0}, {u'_id': ObjectId('56ea445649b93626b14e2041'), u'name': u'orange', u'displayOrder': 3.0}, {u'_id': ObjectId('56ea7b03fae6cf4cb8d84635'), u'name': u'pinepple'}]
我的问题是为什么我在每个键值对之前都得到 "u"? 应该怎么做才能忽略这样的符号?
'u'表示它们是unicode字符串。由于您要通过 str()
将它们转换为字符串。有关这方面的更多信息,请参阅 Python Unicode encode/decode。
话虽如此,您也可以将其转换为 JSON:
from bson import json_util
@app.route("/mongo1")
def find():
dbTest=conn['test']
dbDocs=[]
for fruit in dbTest['fruits'].find():
dbDocs.append(fruit)
return json_util.dumps(dbDocs)
请注意,上面的代码片段使用 bson
模块转换为 json 而不是 json
模块,因为它需要能够解码 MongoDB ObjectID.