1

データを JSON 形式で返す API からデータを抽出しようとしています。これを実現するために、PythonスクリプトでSQLalchemyとsimplejsonを使用しています。データベースはPostgreSQLです。

Harvest というクラスがあり、テーブルの収穫の詳細を指定します。

これが私が間違っていると思われるコードです。

デフォルトプロセス (自己):

            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

ループに何か問題があるとすれば、それはループがスキップされていることだと思います。これを確認するためにできることの 1 つは、次のとおりです。

ALTER USER application_user SET log_statements='all';

その後、ステートメントがログに表示されます。完了したら:

ALTER USER application_user RESET log_statements;

これは、後で問題を引き起こす可能性があるコードで私が目にすることの1つは、行ごとにコミットしているという事実です。これにより、余分なディスク I/O が発生します。おそらくループの後にコミットしたいと思うでしょう。

于 2013-03-20T03:57:11.630 に答える