Python將數據庫查詢結果導出為日曆JS的JSON

本家族2

我正在查詢我的數據庫,然後返回值並將它們 JSONIFY 轉換為 JSON 格式,以便“fullcalendar js”可以解析它們並在我的前端顯示它們。

我的數據庫模型如下:

class database(db.Model):
id = db.Column(db.Integer, primary_key=True)
userid = db.Column(db.Integer, nullable=False)
user = db.Column(db.String(200), nullable=False)
startdate = db.Column(db.String(10), nullable=False)
enddate = db.Column(db.String(10), nullable=False)
duration = db.Column(db.Integer, nullable=False)
approved = db.Column(db.Boolean, nullable=False)

我需要它們的 JSON 格式是:

[
  {
    "title": "Long Event",
    "start": "2014-09-07",
    "end": "2014-09-10"
  }
]

我嘗試過的(“失敗了!”)

alldata = database.query.filter(database.approved == True).all()

events = {"title": [], "start": [], "end": []};

for row in alldata:
    events["title"].append(row.user.strip("[]"))
    events["start"].append(datetime.datetime.strptime(row.startdate,'%d/%m/%Y').strftime('%Y-%m-%d').strip("[]"))
    events["end"].append(datetime.datetime.strptime(row.enddate, '%d/%m/%Y').strftime('%Y-%m-%d').strip("[]"))

# Serializing json
json_object = json.dumps(events, indent=4)
jsontoreturn="["+json_object+"]"
return jsontoreturn

失敗的原因是生成的 JSON 格式為:

[{
"title": [
    "Ben"
],
"start": [
    "2021-12-29"
],
"end": [
    "2021-12-31"
]
}]

如您所見,詞典正在添加方括號,因此 FullCalendar JS ( https://fullcalendar.io/docs/events-json-feed ) 無法正確解析並失敗。

有人有任何想法嗎?

v25

我沒有能力根據您的價值實際測試它,alldata但我懷疑以下方法會起作用:

alldata = database.query.filter(database.approved == True).all()

def process_row(row):
    # func which returns a dictionary like:
    # {"title": "Long Event", "start": "2014-09-07", "end": "2014-09-10" }
    return dict (title = row.user.strip("[]"),
                 start = datetime.datetime.strptime(row.startdate,'%d/%m/%Y').strftime('%Y-%m-%d').strip("[]"),
                 end = datetime.datetime.strptime(row.enddate, '%d/%m/%Y').strftime('%Y-%m-%d').strip("[]"),
                 )

# Make a list of dictionaries based on the input, `alldata`
events = [process_row(r) for r in alldata]

然後簡單地:

json_object = json.dumps(events, indent=4)

return json_object

或者,如果你想使用 Flask 的jsonify函數來設置Content-Type標題:

return jsonify(events)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

將下拉選擇的值傳遞給 NodeJS 以查詢數據庫

數據庫查詢多參數、多模型

Python 將 PostgreSQL 查詢的結果處理為數組

使用 sqlite3.connect 查詢數據庫並檢查匹配結果

將查詢結果作為 CSV 文件從 Docker PostgreSQL 容器導出到本地機器

SQL Server命令將查詢結果返回為json不適用於python

將 IMPORTXML Xpath 查詢格式化為 Google 表格的可讀數據

django 數據庫查詢 OR 條件

使用純 Javascript 將 Json 數據導出為純文本

將 Oracle 查詢轉換為 Pandas 數據幀處理

更新查詢不更新數據庫?

將 SQL 查詢轉換為 PySpark 數據幀,以用於連接數據幀的情況

使用 sshtunnel 使用 Python 查詢 MySQL 數據庫,使用 SSH ppk 密鑰文件

如何查詢規範化的 Firestore 數據庫

PyQt5 Python:如何通過 MySQL 查詢結果中的單個數據行

數據庫文件導出為空

日期為字符串的Mongo數據庫查詢操作題

Flask SQLite 查詢數據庫

為什麼我的 PIVOT 查詢使用不包含 NULL 的數據集生成 NULL 結果?

將數據庫導入 Azure SQL 數據庫時出錯

flutter firebase 實時數據庫:如何將 orderByValue 的結果作為 List<String> 獲取?

查詢數據庫以獲取名字或姓氏

如何在查詢中將自定義 if..else 語句添加到選定的列以將數據從數據庫導出到 excel 文件

SQL 數據庫入口和查詢

嘗試將查詢從 nodejs 插入到 postgresql 數據庫時出錯

將數據從 Influx db 導出為 csv

MongoDB (Mongoose) 數據庫查詢問題

如何將數據記錄器結果格式化為 JSON?

如何使用 dplyr 過濾函數將數據庫查詢傳遞給字符串