首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MARCReader()和pymarc读取MARC数据时出错

使用MARCReader()和pymarc读取MARC数据时出错
EN

Stack Overflow用户
提问于 2017-11-13 06:28:10
回答 1查看 515关注 0票数 2

所以我试着教自己一个学校项目的python和pymarc。我有一个marc文件示例,我试图使用以下简单代码来读取它:

代码语言:javascript
复制
from pymarc import *

reader = MARCReader(open('dump.mrc', 'rb'), to_unicode=True)

for record in reader:
    print(record)

for循环就是打印出每条记录,以确保我得到了正确的数据。唯一的问题是我得到了这个错误:

代码语言:javascript
复制
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

我在网上查过了,但找不到解决问题的办法。这个错误意味着什么,我如何着手修复它?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-04 09:37:07

您可以将python环境设置为支持UTF-8,并将其记录为字典。

尝试:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

reload(sys)
sys.setdefaultencoding('utf-8')

from pymarc import *

reader = MARCReader(open('dump.mrc', 'rb'), to_unicode=True, force_utf8=True)
for record in reader:
    print record.as_dict() 

注意:

  1. 如果仍然得到unicode异常,则可以设置to_unicode=False并跳过force_utf8=True。
  2. 另外,请检查您的dump.mrc文件是否编码为UTF-8或否.尝试:$ chardet dump.mrc
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47258282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档