2016-01-13 3 views
2

Я пишу программу Python для чтения информации из файла JSON, а затем записываю информацию в файл csv. Файл JSON содержит английские и китайские символы. Однако созданный csv-файл не может отображать китайский символ, но отображать некоторые странные символы (например, æ • ¸).Python: Как читать китайский символ из файла JSON?

Ниже часть моей программы

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?

+0

Ваша программа начинается с волшебной линии? (например, # - * - кодирование: utf-8 - * -) – Dominix

ответ

1

Рассмотрите возможность использования функции 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]) 

Эта функция всегда помогала мне с русскими буквами.

+0

Как добиться того же в java? –

Смежные вопросы