我已经下载了 Stackoverflow 2013 年 6 月的数据转储,现在正在解析 XML 文件并存储在 MySQL 数据库中。我正在使用 Python ElementTree 来执行此操作,但它不断崩溃并给我编码错误。
解析代码片段:
post = open('a.xml', 'r')
a = post.read()
tree = xml.parse((a).encode('ascii', 'ignore')) # I also tried .encode('utf-8').strip() it doesn't work
#Get the root node
row = tree.findall("row")
它给了我以下错误:
'ascii' codec can't encode character u'\u2019' in position 248: ordinal not in range(128)
我也尝试使用以下方法,但问题仍然存在。
.encode('ascii', 'ignore')
任何解决问题的建议将不胜感激。此外,如果有人链接到干净的数据也会有所帮助。
另外,我的最终目标是将数据转换为 RDF,所以如果有人有 RDF 格式的 StackOverflow 数据转储,我将不胜感激。
提前致谢!
ps 这是导致问题并使程序崩溃的 XML 行:
<row Id="99" PostTypeId="2" ParentId="88" CreationDate="2008-08-01T14:55:08.477" Score="2" Body="<blockquote>
 <p>The actual resolution of gettimeofday() depends on the hardware architecture. Intel processors as well as SPARC machines offer high resolution timers that measure microseconds. Other hardware architectures fall back to the system’s timer, which is typically set to 100 Hz. In such cases, the time resolution will be less accurate. </p>
</blockquote>

<p>I obtained this answer from <a href="http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=272" rel="nofollow">High Resolution Time Measurement and Timers, Part I</a></p>" OwnerUserId="25" LastActivityDate="2008-08-01T14:55:08.477" />
编辑:@Arjan 你在这里提到的解决方案对我不起作用。