python - 使用 JSON 时出现 Unicode 错误

标签 python json unicode

我知道已经发布了类似的问题,但我认为我遇到的问题与它们相比略有不同。请多多包涵;我 4 个月前才开始使用 Python,我确信我的不成熟表现出来了!

我正在编写一个程序,该程序使用树状图中的 Protovis 插件显示 CSV 文件中的 LinkedIn 数据。据我所知,该插件设置正确,这一切都基于 O'Reilly 的《挖掘社交网络》。但是,当我在 IDLE 中运行代码时,收到以下错误消息:

Traceback (most recent call last):
 File "C:/Users/Envy 15/Desktop/MASIDendo", line 115, in <module>
    html = open(HTML_TEMPLATE).read() % (json.dumps(json_output),)
  File "C:\Python27\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 201, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Python27\lib\json\encoder.py", line 264, in iterencode
    return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 17: invalid start `byte`

现在据我了解,Unicode 错误的原因是我的一个文件名中存在非 Unicode 字符,但是我检查了它们,情况并非如此。它指向的我的代码部分是:

html = open(HTML_TEMPLATE).read() % (json.dumps(json_output),)
f = open(os.path.join(os.getcwd(), 'out', OUT), 'w')
f.write(html)
f.close()

print 'Data file written to: %s' % f.name

# Open up the web page in your browser

webbrowser.open('file://' + f.name)

任何有关此问题的帮助将不胜感激!

最佳答案

检查您的基础,验证 json_data 的内容,使用 repr() 或 pprint.pprint()。

str 和 unicode 对象具有接受错误参数的编码和解码方法,如下所示:"\x66\x89".decode("utf-8", "replace")

json.dumps 将数据编码为 json,奇怪的是你将它传递给 json_output 作为输入。

关于python - 使用 JSON 时出现 Unicode 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160439/

相关文章:

unicode - 6 个八位字节的 UTF-8 序列是否有效?

python - 为什么 df[[2,3,4]][2 :4] works and df[[2:4]][2:4] does not in Python

python - numpy 数组是通过引用传递的吗?

java - 如何在没有ListModel的情况下刷新JList

javascript - 如何在 jQuery 中解析此 API 返回值?

java - 将 unicode 符号转换为其代码

Android 2.3 Unicode 支持

python - 当我尝试从 Python 调用 Jira 项目时,出现 JSON 错误

python - 将列表转换为元组也转换列表中的列表

jquery - 当数据为json时AjaxFileUpload返回下载面板