如何使用API​​,JSON和Python修复错误“被叮咬的对象无法JSON序列化”错误

时间:2019-01-31 20:47:18

标签: python json encoding

奇怪的是,这个相同的代码在MacBook Pro上的工作效果与我想要的完全一样,但是现在我试图在Windows与工作计算机上做同样的事情,这有点麻烦。也许这将揭示这个问题?

无论如何,这是给我带来麻烦的代码行:

with open('PATH', 'w', encoding='utf8') as outfile:
    json.dump(surveyDetails.content, outfile).encode('utf8')

您可以看到我尝试将其编码为utf-8填充到边缘。我不需要在Mac上执行此操作,但是无论如何。但是,当我读过的大多数类似文章都说这是解决方案时,我仍然遇到相同的错误。我不确定还有什么尝试的方法,是否还有另一种方法可以更好地对其进行编码?

1 个答案:

答案 0 :(得分:1)

您不需要编码任何东西。问题在于您要转储的对象已经被 编码为bytes对象,而JSON不知道该怎么处理。

如果surveyDetails.content本身是bytes对象,请在传递之前对其进行解码:

json.dump(surveyDetails.content.decode('utf-8'), outfile)

如果surveyDetails.content是一个dict,列表或包含 一个或多个bytes对象的其他对象,则您需要检查并解码所有{{1 }}对象,然后将其转储。