私はPythondict形式のアーカイブデータをたくさん持っており、jsonに変換するために取り組んでいます。可能であればこのプロセスをスピードアップすることに興味があり、誰かが何か提案があるかどうか知りたいです。現在私:
- 「複数のファイルで」gzip圧縮されたデータを取り込む
- それらを1行ずつ読んでください
- astでliteral_evalを実行します
- jsonダンプを使用して、必要なjson文字列を作成します
- 行の日付を照会する
- 検出された日付で指定された追加用のファイルを開きます
- 文字列をファイルに書き込みます
- プロセス全体を再開します
これが私の現在の作業コードです:
import gzip
import ast
import json
import glob
import fileinput
from dateutil import parser
line = []
filestobeanalyzed = glob.glob('./data/*.json.gz')
for fileName in filestobeanalyzed:
inputfilename = fileName
print inputfilename # to keep track of where I'm at
for line in fileinput.input(inputfilename, openhook=fileinput.hook_compressed):
line = line.strip();
if not line: continue
try:
line = ast.literal_eval(line)
line = json.dumps(line)
except:
continue
date = json.loads(line).get('created_at')
if not date: continue
date_converted = parser.parse(date).strftime('%Y%m%d')
outputfilename = gzip.open(date_converted, "a")
outputfilename.write(line)
outputfilename.write("\n")
outputfilename.close()
これを行うためのより効率的な方法があるはずです、私はそれを見ていません。誰か提案はありますか?