Я использую pythonanywhere для простой запланированной задачи. Я хочу загружать данные по ссылке один раз в день и сохранять файлы csv. Позже, когда у меня будет приличный временной ряд, я выясню, как я на самом деле хочу управлять данными. Это не так много данных, поэтому не нужно ничего особенного, как база данных.
Мой скрипт берет данные из ссылки на листы Google, добавляет столбец журнала и столбец времени, а затем записывает CSV с датой в имени файла.
Он работает именно так, как я хочу, когда я запускаю его вручную в pythonanywhere, но планировщик просто создает пустые файлы csv, хотя и с правильным именем.
Есть идеи, что случилось? Я не понимаю файл журнала. Наверняка ошибка должна возникать при ручном запуске?
сценарий:
import pandas as pd
import time
import datetime
def write_today(df):
date = time.strftime("%Y-%m-%d")
df.to_csv('Properties_'+date+'.csv')
url = 'https://docs.google.com/spreadsheets/d/19h2GmLN-2CLgk79gVxcazxtKqS6rwW36YA-qvuzEpG4/export?format=xlsx'
df = pd.read_excel(url, header=1).rename(columns={'Unnamed: 1':'code'})
source = pd.read_excel(url).columns[0]
df['source'] = source
df['time'] = datetime.datetime.now()
write_today(df)
планировщик настроен следующим образом:
журнальный файл:
Traceback (most recent call last):
File "/home/abmoore/load_data.py", line 24, in <module>
write_today(df)
File "/home/abmoore/load_data.py", line 16, in write_today
df.to_csv('Properties_'+date+'.csv')
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 1344, in to_csv
formatter.save()
File "/usr/local/lib/python2.7/dist-packages/pandas/formats/format.py", line 1551, in save
self._save()
File "/usr/local/lib/python2.7/dist-packages/pandas/formats/format.py", line 1638, in _save
self._save_header()
File "/usr/local/lib/python2.7/dist-packages/pandas/formats/format.py", line 1634, in _save_header
writer.writerow(encoded_labels)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)