Я создал проект Google AppEngine, который принимает файл .txt, находит местоположения внутри файла и использует Yahoo Placemaker, чтобы нанести на карту создателя для представления файла .txt.Проект работает нормально, когда я запускаю на своем локальном хосте, но когда я пытаюсь загрузить его в appspot, я получаю ошибку:
BadValueError: Свойство lat должно быть плавающим
Мой main.py выглядит так:
class Story(db.Model):
id = db.StringProperty()
loc_name = db.StringProperty()
title = db.StringProperty()
lat = db.FloatProperty()
long = db.FloatProperty()
link = db.StringProperty()
class MyStories(webapp.RequestHandler):
def get(self):
temp = db.Query(Story)
temp = temp.count()
story_set = Story.all()
template_values = {
'storyTemp': story_set
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class place(webapp.RequestHandler):
def get(self):
path = '/Users/kimmasterson/storing/txtFiles'
try:
for infile in glob.glob(os.path.join(path, '*.txt')):
#print infile
f = open(infile, 'r')
data = f.read()
newfile = infile.replace('.txt', '')
newfile = newfile.replace('/Users/kimmasterson/storing/txtFiles/', '')
#print newfile
storyname = 'http://www.independent.ie/national-news/' + newfile
#print storyname
#print newfile
#logging.info(data)
p = placemaker('HSnG9pPV34EUBcexz.tDYuSrZ8Hnp.LowswI7TxreF8sXrdpVyVIKB4uPGXBYOA9VjjF1Ca42ipd_KhdJsKYjI5cXRo0eJM-')
print p.find_places(data)
for place in p.places:
splitted = place.name.split()
for word in splitted:
temp = db.Query(Story)
temp = temp.filter("link = ", storyname)
results = temp.fetch(limit=1)
if len(results) >0:
break
elif 'IE' in word:
print temp
print 'success'
story = Story(name=newfile, lat=place.centroid.latitude, long=place.centroid.longitude, link=storyname, loc_name = place.name, title = newfile).put()
except:
print 'error'
logging.info('BIG FAT ERROR')
def main():
application = webapp.WSGIApplication([('/', MyStories), ('/place', place)],
debug=True)
wsgiref.handlers.CGIHandler().run(application)
if __name__ == '__main__':
main()
Мой cron.yaml:
cron:
- description: running place
url: /place
schedule: every day 10:00
По какой-то причине он добавляет места и связывает файл с картой на моем локальном хосте.Любые идеи, как один и тот же код в обоих местах может работать в одном, а не в другом?