菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
347
0

TypeError: Object of type bytes is not JSON serializable

原创
05/13 14:22
阅读数 17380

标签:组成   read   line   mic   json   观察   信息   not   error:   

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()

TypeError: Object of type bytes is not JSON serializable

发表评论

0/200
347 点赞
0 评论
收藏
为你推荐 换一批