【问题标题】:Python: How to read Chinese character from JSON file?Python:如何从 JSON 文件中读取汉字?
【发布时间】:2016-01-13 07:46:44
【问题描述】:

我正在编写一个 Python 程序来从 JSON 文件中读取信息,然后将信息写入 csv 文件。 JSON 文件包含英文和中文字符。但是生成的csv文件不能显示汉字,而是显示一些奇怪的字符(如數)。

以下是我的程序的一部分

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

with open('file.json') as data_file:
  data_teacher = json.load(data_file)

topic[worksheet] = data_teacher[worksheetID]['Topic']
sys.stdout = open('Worksheet.csv','w')
sys.stdout.write(str(topic[worksheet].encode('utf-8')))

我应该如何修改我的程序,以便可以在 csv 文件中显示中文字符?

【问题讨论】:

  • 您的程序是否以魔术线开头? (例如 # -- 编码:utf-8 --)

标签: python json csv character-encoding encode


【解决方案1】:

要在输出中保留汉字,请使用ensure_ascii = False

with codecs.open(outputfile, 'w', encoding='utf-8') as f:
    json.dump(datafile, f, ensure_ascii=False)

【讨论】:

    【解决方案2】:

    考虑使用codecs.open 函数从utf-8 文件中读取\写入。用法可能如下所示:

    import codecs 
    
    with codecs.open('file.json', 'r', 'utf-8') as data_file:
      data_teacher = json.load(data_file, 'utf-8')
    
    topic[worksheet] = data_teacher[worksheetID]['Topic']
    out = codecs.open('Worksheet.csv', 'w', 'utf-8')
    out.write(topic[worksheet])
    

    这个功能一直帮助我处理俄语字母。

    【讨论】:

    • 如何在java中实现同样的功能?
    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 2018-02-27
    • 2014-11-28
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    相关资源
    最近更新 更多