Python中的JSON编码/解码问题

Python中的JSON编码/解码问题,python,unicode,encoding,utf-8,Python,Unicode,Encoding,Utf 8,我试图从RESTAPI读取响应,将其解析为JSON,并将属性写入CSV文件 某些字符的编码未知,在写入CSV文件时无法转换为字符串: 'ascii' codec can't encode character u'\xf6' in position 15: ordinal not in range(128) 所以,我试着按照“agf”的回答来回答这个问题: 我在脚本读取响应内容时添加了对unicode(content).encode(“utf-8”)的调用: obj = json.loads(

我试图从RESTAPI读取响应,将其解析为JSON,并将属性写入CSV文件

某些字符的编码未知,在写入CSV文件时无法转换为字符串:

'ascii' codec can't encode character u'\xf6' in position 15: ordinal not in range(128)
所以,我试着按照“agf”的回答来回答这个问题:

我在脚本读取响应内容时添加了对unicode(content).encode(“utf-8”)的调用:

obj = json.loads(unicode(content).encode("utf-8"))
现在我在这行上看到exceptions.UnicodeDecodeError

Python是否试图在将“内容”编码为utf-8之前对其进行解码?我不太明白发生了什么事。无法确定响应的编码,因为我调用的API没有设置内容类型头


不知道该怎么处理。请告知。

请稍候,如果问题出在输出中,为什么要对输入进行编码?最简单的选择可能只是将csv文件作为二进制文件写入。但在某个时刻,你可能想弄清楚实际的编码方式……当然,它是在试图解码
内容
。您认为将其传递给
unicode
构造函数会怎么样?在编写之前进行编码。詹姆斯·哈格蒂:因为一般的建议是避免这些错误,所以请始终使用unicode。“我学到的一个很好的经验法则是使用‘unicode三明治’的概念。您的脚本接受来自外部世界的字节,但所有处理都应该用unicode完成。只有当您准备好输出数据时,才应该将其压缩回字节!”