複数の API 呼び出しからのデータを組み合わせて CSV ファイルを作成したいと考えています。基本的な Python には問題がなく、API を呼び出し、JSON データを抽出し、データを CSV に書き込むことができます。助けが必要なのは、データを効率的にマージして、データの抽出が完了したら CSV に書き出せるようにすることです。
これは、API リクエストから直接データがどのように見えるかです。
{u'dateTime': u'2011-03-28', u'value': u'2298'},
{u'dateTime': u'2011-03-29', u'value': u'2322'},
{u'dateTime': u'2011-03-30', u'value': u'2309'},
{u'dateTime': u'2011-03-31', u'value': u'2224'},
{u'dateTime': u'2011-04-01', u'value': u'2763'},
{u'dateTime': u'2011-04-02', u'value': u'3543'},
だから私はこれを一緒にマージすることを検討しています:
>APICALL1
2011-03-28,2298
2011-03-29,2322
2011-03-30,2309
>APICALL2
2011-03-28,432
2011-03-29,0
2011-03-30,444
各 API 呼び出しの結果は、ほとんど同じように見えます: 日付と値です。日付は常に同じ形式であるため、これが共通の要素です。
特定の日付と値に対して、値がないか 0 が返される可能性があるため、データがない場合を考慮する必要があります。
理想的な出力は次のようになります。
2011-03-28,2298,432,23952,765,31
2011-03-29,2322,0,432353,766,31
2011-03-30,2309,444,2343923,0,32
2011-03-31,2224,489,3495,765,33
約 15 回の呼び出しがあり、各応答には約 800 行のデータが含まれています (基本的に 800 日、1 日あたり 1 行ずつ増加します)。これを1日に数回実行する必要があるため、これが大きくなると効率がある程度心配になります。残念ながら、履歴データは変更される可能性があるため、コマンドを実行するたびにリスト全体を再構築する必要があります。ただし、履歴データはめったに変更されず、わずかな割合でしか変更されないため、データを更新するだけで効率が向上する場合は、それを受け入れます。
私が作業できることがわかっているオプションの 1 つは、最初の API 呼び出しからすべてを CSV ファイルに書き込んでから、ファイルを再度開き、後続の呼び出しごとに CSV にさらにデータを書き込むことです (つまり、CSV への 15 回の個別の読み取りと書き込み)。プログラムの実行ごと)。それは私にはあまり効率的ではないように思えます。
データセットを構築するためにメモリ内でSQLiteを使用し、最後にCSVにダンプする必要がありますか? リストのリストの方が優れていますか? 私は SQL に強いわけではありませんが、それが正しい方法である場合に危険であることは十分承知しています。