奇怪的是,这个相同的代码在MacBook Pro上的工作效果与我想要的完全一样,但是现在我试图在Windows与工作计算机上做同样的事情,这有点麻烦。也许这将揭示这个问题?
无论如何,这是给我带来麻烦的代码行:
with open('PATH', 'w', encoding='utf8') as outfile:
json.dump(surveyDetails.content, outfile).encode('utf8')
您可以看到我尝试将其编码为utf-8填充到边缘。我不需要在Mac上执行此操作,但是无论如何。但是,当我读过的大多数类似文章都说这是解决方案时,我仍然遇到相同的错误。我不确定还有什么尝试的方法,是否还有另一种方法可以更好地对其进行编码?
答案 0 :(得分:1)
您不需要编码任何东西。问题在于您要转储的对象已经被 编码为bytes
对象,而JSON不知道该怎么处理。
如果surveyDetails.content
本身是bytes
对象,请在传递之前对其进行解码:
json.dump(surveyDetails.content.decode('utf-8'), outfile)
如果surveyDetails.content
是一个dict,列表或包含 一个或多个bytes
对象的其他对象,则您需要检查并解码所有{{1 }}对象,然后将其转储。