我正在尝试编写一个 Python Flask 程序来读取我的 MongoDB 数据库并以 Json 格式输出表。我的烧瓶似乎正在运行,因为我能够进入默认端点,但我的第二个端点给了我以下错误。如有任何反馈,我们将不胜感激。
TypeError: Object of type ObjectId is not JSON serializable
这是我的代码。
我的数据库名称是“movies_db”,集合名称是“movie_info”。
from flask import Flask, jsonify
from pymongo import MongoClient
app = Flask(__name__)
# Replace with MongoDB connection details
mongo_client = MongoClient('mongodb://localhost:27017/')
db = mongo_client['movies_db']
@app.route('/')
def index():
return 'Welcome to my Project!'
import json
@app.route('/export-json', methods=['GET', 'POST'])
def export_json():
collection_name = 'movie_info'
data = list(db[collection_name].find({}))
# Convert data to JSON using Flask's jsonify
json_data = jsonify(data).get_json()
# Write JSON data to a file
with open('data.json', 'w') as json_file:
json.dump(json_data, json_file, indent=4)
return jsonify({'message': 'Data exported to data.json'})
if __name__ == '__main__':
app.run()`
我尝试使用此链接中的解决方案,但仍然没有成功。
如果您不关心
_id
字段,您可以通过更改 find()
来排除该字段。
data = list(db[collection_name].find({}, {'_id': 0})
如果您的记录中有其他
ObjectId
,这将无济于事。