我正试图从一个API中提取数据,该API以JSON格式返回数据。我在python脚本中使用SQLalchemy和simplejson来实现这一点。数据库为PostgreSQL
我有一个叫做Harvest的类,它指定了表Harvest的细节。
这是我怀疑是不正确的代码。def过程(自我):
req = urllib2.Request('https://api.fulcrumapp.com/api/v2/records/', headers={"X-ApiToken":"****************************"})
resp = urllib2.urlopen(req)
data = simplejson.load(resp)
for i, m in enumerate(data['harvest']):
harvest = Harvest(m)
self.session.add(harvest)
self.session.commit()
这个循环有问题吗?没有东西进入数据库。
我怀疑如果循环有什么问题的话,那就是循环被跳过了。您可以这样验证:
ALTER USER application_user SET log_statements='all';
语句将显示在您的日志中。完成后:
ALTER USER application_user RESET log_statements;
话虽如此,我在你的代码中看到的一件可能会引起麻烦的事情是,你是每行提交的。这将导致额外的磁盘I/O。您可能希望在循环之后提交。