TypeError: Object of type bytes is not JSON serializable


0.問題描述

在做一個數據處理的時候,需要將一個XMl的文件解析成一個json,關鍵是xml的文件格式和json不是一一對應的,需要我一點一點拼接關鍵信息,組成json文件,最后在寫出json文件的時候,我采用了json.dump(result, json_file,indent=4),結果出現了以下的錯誤:

Traceback (most recent call last):
  File "D:/PycharmProjects/ocr/xmlToJson.py", line 151, in <module>
    parseXmlToJson("D://2", "D://3", "D://output")
  File "D:/PycharmProjects/ocr/xmlToJson.py", line 121, in parseXmlToJson
    json.dump(result, json_file,indent=4)
  File "d:\softwareinstall\python3.7\lib\json\__init__.py", line 179, in dump
    for chunk in iterable:
  File "d:\softwareinstall\python3.7\lib\json\encoder.py", line 431, in _iterencode
    yield from _iterencode_dict(o, _current_indent_level)
  File "d:\softwareinstall\python3.7\lib\json\encoder.py", line 405, in _iterencode_dict
    yield from chunks
  File "d:\softwareinstall\python3.7\lib\json\encoder.py", line 438, in _iterencode
    o = _default(o)
  File "d:\softwareinstall\python3.7\lib\json\encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type bytes is not JSON serializable

1.問題解決

報錯信息中顯示是類型bytes不是json的可序列化的,這時候我就去觀察我在拼湊dict的時候有沒有采用bytes這種類型,

經過bebug發現確實這轉化base64的時候他的結果是bytes的,所以我的將bytes轉成str類型即可。

我們只需要在bytes類型后面加上decode()就行,想我這個例子中base64.b64encode(image.read()).decode()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM