2015-04-25 2 views
3

У меня есть часть кода, работающая на ноутбуке iPython, который загружает файл JSON, а затем анализирует содержимое в Pandas DF. Однако, если я попытаюсь проверить DF, я получаю ошибку кодирования.UnicodeDecodeError в фрейме данных pandas, созданном из файла JSON

output = r.json() 
columns_map = {'/people/person/date_of_birth': 'birth_date', 
       '/people/person/place_of_birth': 'birth_place', 
       '/people/person/gender': 'gender'} 
dF = pd.DataFrame(output['result']) 
dF.rename(columns=columns_map, inplace=True) 
dF.to_csv('file.csv',encoding='utf-8') 

Я могу создать CSV из ФР без каких-либо проблем, но если я типа

dF 

Для проверки ФР внутри ноутбука IPython, я получаю это:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1894: ordinal not in range(128) 

Может ли кто-нибудь помочь?

+0

Не могли бы вы попытаться сделать dataframe с pd.read_json? – fixxxer

+0

Да. Та же проблема. Это ошибка кодирования. –

+1

Я думаю, что есть столбцы с символами Юникода, которые старую версию панд. Подобно этой ошибке - https://github.com/pydata/pandas/issues/680 – fixxxer

ответ

7

После некоторого исследования я обнаружил, что это проблема с версией Python < 3.0. По какой-то странной причине быстрое решение заключается в том, чтобы импортировать sys и relaod sys. Это сработало для меня:

import sys  
reload(sys) 
sys.setdefaultencoding('utf8')