欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決TypeError: Object of type xxx is not JSON serializable錯誤問題

 更新時間:2023年06月25日 14:13:25   作者:zaf趙  
這篇文章主要介紹了解決TypeError: Object of type xxx is not JSON serializable錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

TypeError: Object of type xxx is not JSON serializable

問題描述

在導(dǎo)入Python json包,調(diào)用json.dump/dumps函數(shù)時,可能會遇到TypeError: Object of type xxx is not JSON serializable錯誤,也就是無法序列化某些對象格式。

解決辦法

默認(rèn)的編碼函數(shù)很多數(shù)據(jù)類型都不能編碼,自定義序列化,因此可以自己寫一個Myencoder去繼承json.JSONEncoder

具體如下:

class MyEncoder(json.JSONEncoder):
? ? def default(self, obj):
? ? ? ? if isinstance(obj, np.integer):
? ? ? ? ? ? return int(obj)
? ? ? ? elif isinstance(obj, np.floating):
? ? ? ? ? ? return float(obj)
? ? ? ? elif isinstance(obj, np.ndarray):
? ? ? ? ? ? return obj.tolist()
? ? ? ? else:
? ? ? ? ? ? return super(MyEncoder, self).default(obj)

然后在調(diào)用json.dump/dumps時,指定使用自定義序列化方法

json.dumps(data, cls=MyEncoder)?

dict to json

def dict_to_json(dict_obj,name, Mycls = None):
? ? js_obj = json.dumps(dict_obj, cls = Mycls, indent=4)
? ? with open(name, 'w') as file_obj:
? ? ? ? file_obj.write(js_obj)

json to dict

def json_to_dict(filepath, Mycls = None):
? ? with open(filepath,'r') as js_obj:
? ? ? ? dict_obj = json.load(js_obj, cls = Mycls)
? ? return dict_obj

TypeError: Object of type ‘int64’ is not JSON serializable (或者float32)

在使用json格式保存數(shù)據(jù)時,經(jīng)常會遇到xxx is not JSON serializable,也就是無法序列化某些對象格式,我所遇見的是我使用了numpy時,使用了np的數(shù)據(jù)格式,寫入data后,json.dumps(data)失敗,我們可以自己定定義對特定類型的對象的序列化

下面看下怎么定義和使用關(guān)于np數(shù)據(jù)類型的自定義。

1.首先,繼承json.JSONEncoder,自定義序列化方法。

class NpEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
elif isinstance(obj, np.floating):
return float(obj)
elif isinstance(obj, np.ndarray):
return obj.tolist()
else:
return super(NpEncoder, self).default(obj)

2.使用dumps方法(我們可以直接把dict直接序列化為json對象)加上 cls=NpEncoder,data就可以正常序列化了

json.dumps(data, cls=NpEncoder)

其實,很簡單,自定義一個序列化方法,然后dumps的時候加上cls=NpEncoder

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)telnet服務(wù)器的方法

    Python實現(xiàn)telnet服務(wù)器的方法

    這篇文章主要介紹了Python實現(xiàn)telnet服務(wù)器的方法,涉及Python通過Telnet連接服務(wù)器的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Python?PaddleGAN實現(xiàn)調(diào)整照片人物年齡

    Python?PaddleGAN實現(xiàn)調(diào)整照片人物年齡

    這篇文章主要介紹了通過PaddleGAN實現(xiàn)照片人物的老年化和年輕化處理,文中的示例代碼講解有效,對我們學(xué)習(xí)或工作有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2021-12-12
  • Python成功解決ZeroDivisionError:?division?by?zero的方法過程

    Python成功解決ZeroDivisionError:?division?by?zero的方法過程

    在Python編程中,ZeroDivisionError:divisionbyzero是因為嘗試除以零所導(dǎo)致的常見錯誤,這篇文章詳細(xì)介紹了錯誤的原因、解決方案,需要的朋友可以參考下
    2024-09-09
  • Python光學(xué)仿真從Maxwell方程組到波動方程矢量算法理解學(xué)習(xí)

    Python光學(xué)仿真從Maxwell方程組到波動方程矢量算法理解學(xué)習(xí)

    這篇文章主要為大家介紹了Python光學(xué)仿真從Maxwell方程組到波動方程算法的理解學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python實現(xiàn)單項鏈表的最全教程

    Python實現(xiàn)單項鏈表的最全教程

    單向鏈表也叫單鏈表,是鏈表中最簡單的一種形式,它的每個節(jié)點包含兩個域,一個信息域(元素域)和一個鏈接域,這個鏈接指向鏈表中的下一個節(jié)點,而最后一個節(jié)點的鏈接域則指向一個空值,這篇文章主要介紹了Python實現(xiàn)單項鏈表,需要的朋友可以參考下
    2023-01-01
  • django框架實現(xiàn)模板中獲取request 的各種信息示例

    django框架實現(xiàn)模板中獲取request 的各種信息示例

    這篇文章主要介紹了django框架實現(xiàn)模板中獲取request 的各種信息,結(jié)合實例形式分析了Django框架模板直接獲取request信息的相關(guān)配置與操作技巧,需要的朋友可以參考下
    2019-07-07
  • python繪制雙柱形圖代碼實例

    python繪制雙柱形圖代碼實例

    這篇文章主要介紹了python繪制雙柱形圖代碼實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python常用算法學(xué)習(xí)基礎(chǔ)教程

    Python常用算法學(xué)習(xí)基礎(chǔ)教程

    這篇文章主要學(xué)習(xí)Python常用算法,Python常用排序算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一
    2017-04-04
  • Python3基于plotly模塊保存圖片表格

    Python3基于plotly模塊保存圖片表格

    這篇文章主要介紹了Python3基于plotly模塊保存圖片表格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭

    Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭

    OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實時視覺應(yīng)用,并在可用時利用MMX和SSE指令,本篇文章帶你了解OpenCV讀取圖像視頻與網(wǎng)絡(luò)攝像頭的方法
    2022-04-04

最新評論