我正试图从一个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。您可能希望在循环后提交。

10-08 11:35