У меня есть работа cron в python, которая работает на моем localhost, но когда она развернута для appengine, она больше не работает.Cron работает на локальном хосте, но не при развертывании Appengine
pl = db.Query(Venue).order("id")
list = pl.fetch(limit=0)
for p in pl:
base_url = 'http://search.twitter.com/search.json?rpp=100&q=4sq.com/'
query = p.twitter_ID
url_string = base_url + query
json_text = fetch(url_string)
json_response = simplejson.loads(json_text.content)
result = json_response['results']
for f in result:
user = f['from_user']
print user
Это отлично работает локально, но на сервере я получаю следующее сообщение об ошибке:
'results' Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/init.py", line 515, in call handler.get(*groups) File "/base/data/home/apps/hoosheer/4.347697940058059704/hoosheer_main.py", line 199, in get result = json_response['results'] KeyError: 'results'
Это сделало работу, пока не развернет свою вторую версию. Есть ли способ исправить это?
Вам нужно проверить, что находится в ответе, который вы получаете из твиттера. Я думаю, что в нем нет «результатов», возможно, произошла какая-то ошибка (превышена какая-то твиттер-квота?). Добавьте logging.info ('JSON RESPONE:% s'% json_text) в свой код и зарегистрируйте журналы приложений, которые возвращаются из твиттера. –
Да, меня преклонил Павел. Я бы пообещал разумную сумму денег, что Twitter просто подсчитывает * все * запросы, поступающие из App Engine, как один пользователь и говорит: «Больше не для вас». Вам может быть позволено запросить ваш собственный логин, чтобы получить квоту с отгороженными. – Malvolio