Получая странную ошибку, в jupyter notes я могу запустить:
df1.to_csv("{0}{1}.csv".format(report_path,db))
и мой csv выходит нормально.
Когда я пытаюсь выполнить то же самое за пределами jupyter, поместив вышеуказанное в файл внешний файл и запустив это:
#imports requred to run querys
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
from pyhive import presto
import matplotlib.pyplot as plt
import seaborn as sn
#run config file, which contains the query to generate the report
def run_config(db):
print args.an
print ("config is = {0}".format(config))
with open(config) as cfg:
v = cfg.read()
exec v
Я получаю эту ошибку:
lib.write_csv_rows(self.data, ix, self.nlevels, self.cols, self.writer)
File "pandas/_libs/lib.pyx", line 1035, in pandas._libs.lib.write_csv_rows
UnicodeEncodeError: 'ascii' codec can't encode characters in position 8-11: ordinal not in range(128)
Я вполне уверен, что что-то в моем DF вызывает эту ошибку, потому что другие df не имеют этой проблемы.Но я заблудился, как исправить или отредактировать код, чтобы запечатлеть это.
исправление
df1.to_csv("{0}{1}.csv".format(report_path,db), encoding='utf8-8')