Python:調用json.dumps處理datetime對象數據

文章目錄

  • 前言
  • 一、查詢SQL語句中數據轉換
    • 1、思路
    • 2、示例
    • 3、常用格式化模式
    • 4、注意事項
  • 二、自定義JSONEncoder處理
    • 1、思路
    • 2、示例
    • 3、使用方法
  • 寫在結尾


前言

??使用Python開發查詢PostgreSQL數據庫,返回數據中有timestamp類型數據字段。如果使用json.dumps轉換成json對象,可能會遇到:“TypeError: Object of type datetime is not JSON serializable”錯誤,大概意思是datetime.datetime不可JSON序列化。
??數據庫字段定義:

"file_date" timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP

??使用print將查詢后元組中的值打印出來,發現timestamp類型的數據是以對象的形式存在的,如:datetime.datetime(2025, 6, 24, 11, 45, 36, 11746)
??本文嘗試在不改動數據庫的情況下記錄幾種解決方法。

一、查詢SQL語句中數據轉換

1、思路

??從數據源頭處理,PostgreSQL中直接查詢timestamp類型數據到元組中表現為對象,那就從查詢語句著手,在查詢的SQL語句中將數據轉換成字符串格式數據。
??在PostgreSQL中,可以使用TO_CHAR 函數將日期格式化為多種不同的格式。TO_CHAR 函數接受兩個參數:一個是要格式化的日期值,另一個是定義輸出格式的模板。

2、示例

SELECT TO_CHAR("file_date", 'YYYY-MM-DD HH24:MI:SS');

??上述示例將當前時間格式化為 YYYY-MM-DD HH24:MI:SS 格式。

3、常用格式化模式

  • YYYY:四位數年份
  • MM:兩位數月份(01-12)
  • DD:兩位數日期(01-31)
  • HH24:24小時制的小時(00-23)
  • MI:分鐘(00-59)
  • SS:秒(00-59)

4、注意事項

  • 日期插入:推薦使用 ISO 格式 YYYY-MM-DD 插入日期值。
  • 錯誤處理:如果插入的日期格式不正確,可能會導致錯誤。例如,‘16-10-2022’ 會導致錯誤,因為數據庫無法確定哪個字段是日期,哪個字段是月份。
  • 通過使用 TO_CHAR 函數和適當的格式化模式,可以靈活地在 PostgreSQL 中處理和顯示日期。

二、自定義JSONEncoder處理

1、思路

??通過Python中的json模塊。json.dumps()是一個把Python對象轉換成json字符串的函數。如下:

json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,default=None, sort_keys=False, **kw)

??其中的cls參數允許自定義JSONEncoder的派生類,覆蓋其中的default()方法實現序列化其他類型的數據。

2、示例

from datetime import datetime
import jsonclass DateTimeEncoder(json.JSONEncoder):def default(self, o):if isinstance(o, datetime):return o.isoformat()return super().default(o)

3、使用方法

data = (1, 'c7ffc2fc7e9182e649e3cae0d9e8bf98', 0, datetime.datetime(2025, 6, 24, 11, 45, 36, 11746), None)
json.dumps(data, ensure_ascii=False, cls=DateTimeEncoder)

寫在結尾

??疑云盤詰久徘徊,忽見天光破霧來。解惑明心皆朗徹,故有此文以記之!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86354.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QT6 源(130)視圖模型架構中的字符串列表模型 QStringListModel:成員函數,本類的繼承關系圖以及源碼注釋

(1)字符串列表型的 model ,可以交給視圖 view 來顯示,也可以由組合框 comboBox 讀取其中的內容 : (2)以下開始學習本字符串 model 里的成員函數,本類沒有再定義信號與槽函數 &#x…

dockerfile命令及構建+docker-compose安裝構建

一,dockerfile常用命令 命令介紹FROM–指定基礎鏡像LABEL作者信息USER切換運行屬主身份WORKDUR切換工作目錄ENV用于docker容器設置環境變量RUN用來執行命令行的命令COPY把宿主機文件復制到鏡像中去ADD將文件路徑復制添加到容器內部路徑EXPOSE為容器打開指定要監聽的…

數學:逆元,同余

逆元,同余 0.引言1.同余1.1 同余的基本性質1.2 解同余線性方程 2.逆元費馬小定理求逆元(m必需為質數)擴展歐幾里得求逆元(使用任意互質的a和m) 0.引言 本文講述什么是逆元,如何求逆元。求逆元的兩種常規方法。然后知道…

廣州華銳互動:技術與創意雙驅動的 VR 先鋒?

廣州華銳互動能夠在眾多 VR 公司中嶄露頭角,離不開其強大的技術實力和源源不斷的創意靈感 。在技術研發方面,廣州華銳互動組建了一支專業的技術團隊,團隊成員均具備扎實的技術功底和豐富的行業經驗,他們專注于 VR、AR、3D 等核心技…

教育培訓教學通用PPT模版

教育培訓通用PPT模版,兒童教育PPT模版,公開課件教學PPT模版,讀書筆記PPT模版,古風PPT模版,教育教學通用PPT模版 教育培訓教學通用PPT模版:https://pan.quark.cn/s/6c2ed020e398

Data Vault 初探(五) —— 定期裝載_SQL

說明: 1. 定期裝載的周期為每天一次。 2. 每天裝載自上次裝載后的變化數據 3. 建立源數據庫的過渡表用于CDC 4. 建立cdc_time表用于基于時間戳的CDC 5. 因為源庫上只有訂單銷售表有時間屬性,所以除了sales_order和sales_order_item拉取變化數據外&#x…

Java虛擬機棧(JVM Stack)詳解與工作流程分析

Java虛擬機棧(JVM Stack)詳解與工作流程分析 1. 虛擬機棧核心概念 基本特性 線程私有:每個線程在創建時都會分配一個獨立的棧存儲內容: 棧幀(Stack Frame):每個方法調用對應一個棧幀 生命周期…

Sonarqube:Jenkins觸發sonar掃描出現UnsupportedClassVersionError錯誤處理

文章目錄 1、問題現象2、問題根因3、解決思路3.1 解決思路13.2 解決思路23.3 解決思路3 1、問題現象 問題現象:在每次Jenkins觸發sonar掃描時,Sonar-scanner掃描器執行都會出現UnsupportedClassVersionError異常,如下: ERROR: …

Spark SQL to_json 函數介紹

目錄 前言函數介紹參數說明示例 前言 在Apache Hive中,并沒有內置的to_json函數。在Apache Spark SQL中確實有to_json函數,它可以用來將結構化數據(如結構化類型或MAP類型)轉換為JSON字符串。這個功能對于需要將表格數據輸出為JSON格式的場景…

《解鎖前端潛力:自動化流程搭建秘籍》

當項目逐漸從萌芽走向繁茂,中期階段對流程優化與效率提升的需求便愈發迫切。搭建一套自動化測試、持續集成與部署的完整流程,已然成為突破瓶頸、保障代碼質量與上線效率的關鍵密鑰。這不僅是技術的進階,更是思維與協作模式的革新。在踏上構建…

計算機體系結構中的片上系統SoC是什么?

計算機體系結構中的片上系統SoC是什么? 片上系統(SoC,System on Chip) 是一種將計算機或其他電子系統的多個關鍵組件集成到單一芯片上的集成電路設計。它不僅僅是處理器(CPU),而是將處理器、內…

linux虛擬機基礎-磁盤擴容詳細版本模擬實驗

擴容實驗參考上一篇博客: https://blog.csdn.net/wenxiaocsdn/article/details/141932877?spm1001.2014.3001.5502 LVM基礎知識附錄紅帽官方文檔 配置和管理邏輯卷 | Red Hat Enterprise Linux | 8 | Red Hat Documentation LVM邏輯結構圖 LVM 管理命令速查表&…

hbase高可用部署

要實現HBase集群的高可用部署(High Availability, HA),核心在于消除單點故障(特別是HMaster節點),并確保數據冗余和服務自動恢復。以下是、關鍵步驟和配置要點: 一、核心配置步驟? ?1.1 啟用…

STM32F103ZET6開發板【項目工程創建】+具體實現步驟流程

硬件介紹 芯片為STM32F103ZET6 STM32F103 資源簡介 STM32 的優異性 1,超低的價格。8 位機的價格,32 位機的性能,是 STM32 最大的優勢。 2,超多的外設。STM32 擁有包括:FMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、…

CyberGlove觸覺反饋手套遙操作機器人靈巧手解決方案

CyberGlove觸覺反饋手套確實可以實時捕捉運動信號和觸覺反饋,并將其重新定位到人形機器人上。CyberGlove觸覺反饋手套遙操作機器人是通過手套上的傳感器捕捉手部動作,將信號傳輸給機器人,同時接收機器人反饋的觸覺信息,實現遠程操…

[C#]C# winform部署yolov13目標檢測的onnx模型

yolov13官方框架:github.com/iMoonLab/yolov13/releases/tag/yolov13 【測試環境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.3 【效果展示】 【調用代碼】 using System; using System.Collections.Generic; using System.ComponentMode…

創客匠人 AI 賦能:創始人 IP 打造的效率革命與信任重構

在注意力經濟時代,創始人 IP 面臨內容生產效率與信任構建的雙重挑戰。創客匠人 2025 年戰略升級為 “IP 變現整體解決方案服務商”,其推出的 AI 銷售信、免訓數字人、智能客服三大工具,正通過技術重構破解行業痛點,為知識變現開辟…

飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究

以下是為您撰寫的《飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究》技術報告,包含完整的理論分析、控制策略設計及MATLAB/Simulink仿真實現細節: 飛輪儲能VSG控制策略輔助雙饋風機一次調頻的仿真模型研究 摘要 針對雙饋感應發電機(DFIG)參與電網一次調頻時存在…

臨床開發計劃:從實驗室到市場的戰略藍圖

一、臨床開發計劃概述 1.1 定義與重要性 1.1.1 CDP核心定義 臨床開發計劃(CDP)是藥物、生物制品或醫療器械從實驗室走向市場的核心路線圖,詳細規劃臨床研究及其策略、時間表和資源需求,以滿足監管機構審批要求。 1.1.2 指導意義 CDP為開發團隊提供清晰指引,指導資源規劃…

【大模型實戰】微調Qwen2.5 VL模型,增強目標檢測任務。

文章目錄 制作數據集使用微調的模型制作數據集 制作數據集 這個章節將詳細解析一個將Labelme標注數據集轉換為Qwen2.5-VL模型訓練格式的Python腳本。該工具實現了圖像大小調整、邊界框坐標轉換和數據格式標準化等功能。生成適用Qwen2.5-VL的數據集。 核心功能概述 圖像處理&a…