1

我正在尝试从以 JSON 格式返回数据的 API 中提取数据。我在 python 脚本中使用 SQLalchemy 和 simplejson 来实现这一点。数据库是 PostgreSQL。

我有一个名为 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()

这个循环有问题吗?没有任何东西通过数据库。

4

1 回答 1

0

我怀疑如果循环有任何问题,那就是循环被跳过了。您可以做的一件事是验证这一点:

ALTER USER application_user SET log_statements='all';

然后这些语句将显示在您的日志中。完成后:

ALTER USER application_user RESET log_statements;

话虽这么说,我在您的代码中看到的一件事可能会在以后引起麻烦,那就是您每行都在提交。这将导致额外的磁盘 I/O。您可能想在循环之后提交。

于 2013-03-20T03:57:11.630 回答