検索APIを使用して収集したjson形式のつぶやきを含むテキストファイル(約600MB)があります。私はつぶやきで「のcreated_at」の値に基づいてツイートをソートし、コードを使用している.I新しいファイルに書きたい:作成した値に基づいてリスト内のつぶやきを並べ替えます
oldlist=[]
newlist=[]
with open('abc.txt') as f:
for each in f:
oldlist.append(json.loads(each))
newlist=(sorted(oldlist,key=lambda k: k['created_at'])).
と私は、テキストファイルに「>>」を使用して出力をリダイレクトすることができます。
小さなファイル(100MB)でも試してみましたが、これにも時間がかかります。これを行うより良い方法はありますか?
のためのパンダを使用するように助言することができます。時間の複雑さの点では、これが最良です。しかし、少し速く*するためにできることはいくつかあります。 –
Woaaaaaah。あなたは_definitely_ 'sorted()'を呼びたくはありません。それはあなたの600 MBのリストのコピーを返します。おそらくCに切り替えるべきです。 –
@Coldspeed:リストのデータをコピーしません。ソートは*浅い*コピーを作成します。それで、20kのリファレンス(例えば)のリストを作成しますが、おそらくほとんどのメモリを消費する辞書自体はコピーされません。 –