您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關MySQL Decimal is not JSON serializable以及插入小數變成0的實例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
使用Python搭建的web服務,后臺讀取MySQL數據后,需要將數據序列化為json串,返回給前端。但是如果MySQL的字段是decimal類型,序列化為json串就會遇到麻煩。會報如下錯誤
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: Decimal('0') is not JSON serializable
HTTP/1.0" 500
網上有一些解決方案,但是如果你對于數據精度的要求沒那么高的話,完全可以把MySQL中的decimal字段的類型改為float,float類型是可以直接進行json序列化的。這樣只修改數據庫,不修改代碼,就可以修復問題。參考下圖。另外,設置float類型的時候,小數點后一定要設置,可以設置為4,表示帶4位小數。否則默認可能是帶0位小數,就不準確了。如果你insert的數據類似‘0.022’這種,在數據庫中就變成0了。
建議使用Navicat for MySQL來操作數據庫,這款軟件是收費的,很容易破解,當然還是鼓勵大家使用正版。鼠標右擊表的名稱,選擇“設計表”,然后你會看到上面的圖片內容,里面可以修改字段類型,長度,增加索引等,比語句操作方便多了。
以上就是MySQL Decimal is not JSON serializable以及插入小數變成0的實例分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。