Python 使用MARCReader()和pymarc读取MARC数据时出现问题

Python 使用MARCReader()和pymarc读取MARC数据时出现问题,python,ascii,marc,Python,Ascii,Marc,因此,我正在努力自学python和pymarc,这是我正在进行的一个学校项目。我有一个样本marc文件,我正在尝试使用以下简单代码读取它: from pymarc import * reader = MARCReader(open('dump.mrc', 'rb'), to_unicode=True) for record in reader: print(record) for循环只是打印出每条记录,以确保获得正确的数据。唯一的问题是我得到了这个错误: UnicodeDecode

因此,我正在努力自学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)

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

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

尝试:

注:

  • 如果仍然得到unicode异常,可以设置为\u unicode=False并跳过force\u utf8=True

  • 另外,请检查dump.mrc文件是否编码为UTF-8。尝试: $chardet dump.mrc


  • 您可以将python环境设置为支持UTF-8,并将记录作为字典获取

    尝试:

    注:

  • 如果仍然得到unicode异常,可以设置为\u unicode=False并跳过force\u utf8=True

  • 另外,请检查dump.mrc文件是否编码为UTF-8。尝试: $chardet dump.mrc

  • #!/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()