擅长:python、mysql、java
<p><code>jsonObj</code>中的字符串将是<code>unicode</code>类型,因为Python<code>json</code>模块将生成unicode字符串。你的csv作者想要的一切都是<code>str</code>类型的。在Python2.7中,它将尝试自动将<code>unicode</code>类型转换为<code>str</code>类型(假定为ASCII)。如果unicode类型不包含ASCII,这当然会失败。</p>
<p>最简单的解决方法是更改这一行:</p>
<pre><code>csvWriter.writerows(jsonObj['vendors'])
</code></pre>
<p>在发送给csv writer之前,用utf8将unicode编码成str。<code>jsonObj['vendors']</code>是具有unicode键和值的字典列表,因此我们可以执行以下操作:</p>
<pre><code>unicode_vendors = jsonObj['vendors']
str_vendors = []
for unicode_dict in unicode_vendors:
str_dict = {}
for key, value in unicode_dict.items():
str_dict[key.encode('utf8')] = value.encode('utf8') if value else value
str_vendors.append(str_dict)
csvWriter.writerows(str_vendors)
</code></pre>