所以我试着教自己一个学校项目的python和pymarc。我有一个marc文件示例,我试图使用以下简单代码来读取它:
from pymarc import *
reader = MARCReader(open('dump.mrc', 'rb'), to_unicode=True)
for record in reader:
print(record)for循环就是打印出每条记录,以确保我得到了正确的数据。唯一的问题是我得到了这个错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)我在网上查过了,但找不到解决问题的办法。这个错误意味着什么,我如何着手修复它?提前谢谢。
发布于 2018-01-04 09:37:07
您可以将python环境设置为支持UTF-8,并将其记录为字典。
尝试:
#!/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() 注意:
https://stackoverflow.com/questions/47258282
复制相似问题