python - 如何使用 API、JSON 和 Python 修复错误“类型咬的对象不是 JSON 可序列化”
问题描述
奇怪的是,同样的代码在我的 MacBook Pro 上运行起来几乎完全符合我的要求,但现在我正试图用我的工作计算机在 Windows 上做同样的事情,它遇到了一些麻烦。也许这会阐明这个问题?
无论如何,这是给我带来麻烦的代码行:
with open('PATH', 'w', encoding='utf8') as outfile:
json.dump(surveyDetails.content, outfile).encode('utf8')
您可以看到我尝试将其编码为 utf-8 将其填满。我不需要在我的 Mac 上执行此操作,但无论如何。但是,当我读过的大多数类似帖子都说这是解决方案时,我仍然遇到同样的错误。我不确定还有什么可以尝试的——还有另一种编码方式应该更好吗?
解决方案
你不需要编码任何东西。问题是您尝试转储的对象已经编码为bytes
对象,而 JSON 不知道如何处理这些对象。
如果surveyDetails.content
它本身是一个bytes
对象,则在传递之前对其进行解码:
json.dump(surveyDetails.content.decode('utf-8'), outfile)
如果surveyDetails.content
是包含一个或多个对象的字典、列表或其他对象,则需要在转储之前bytes
检查并解码其中的任何对象。bytes
推荐阅读
- eclipse - Eclipse 自动完成问题
- azure-functions - 自动触发器没有一直执行,代码有一段时间没有执行
- angular - 创建用户是 Cloud Functions 中的一步
- intellij-idea - IntelliJ 文件观察器使用错误的 grunt
- excel - 如何从动态创建的框架中检索名称
- npm - 任意文件覆盖:tar npm audit
- java - 使用正则表达式对字符串的各个部分进行分组
- protocol-buffers - 将消息类型更改为类似类型会破坏向后兼容性吗?
- python - 适用于 MySQL 命令行的 Python SQL 错误
- windows - 无法在 Tomcat 上发布