【发布时间】:2012-02-06 12:56:17
【问题描述】:
我知道已经发布了类似的问题,但我认为我遇到的问题与他们相比略有不同。请多多包涵;我 4 个月前才开始使用 Python,我敢肯定我的不成熟表现出来了!
我正在编写一个程序,该程序使用树形图中的 Protovis 插件显示来自 CSV 文件的 LinkedIn 数据。据我所知,该插件设置正确,这一切都基于 O'Reilly 的 Mining the Social Web。但是,当我在 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)
对此的任何帮助将不胜感激!
【问题讨论】:
-
您的 sn-p 的第一行试图做太多事情 - 创建 JSON,加载模板,并迭代值以创建最终的 HTML。将这些拆分为单独的步骤,您将更有可能看到发生了什么。