json ファイルの Explode 関数のようなものを作ろうとしています。ループは行ごとにjsonファイルを取得する必要があり、各行には、この行から抽出してメイン行と一緒に配置したい複数の値があります(側面図やSQLの爆発関数など)
データは次のようになります
{"wl_id":0,"wl_customer_id":0,"wl_webpage_name":"webpage#00","wl_timestamp":"2013-01-27 16:07:02","wl_key2":103717,"wl_key3":589101,"wl_key4":23095,"wl_key5":200527,"wl_key6":60319}
今私が欲しいのは、SQL Explode this のようなものです
{"wl_id":0,"wl_customer_id":0,"wl_webpage_name":"webpage#00","wl_timestamp":"2013-01-27 16:07:02","wl_key2":103717}
{"wl_id":0,"wl_customer_id":0,"wl_webpage_name":"webpage#00","wl_timestamp":"2013-01-27 16:07:02","wl_key3":589101}
{"wl_id":0,"wl_customer_id":0,"wl_webpage_name":"webpage#00","wl_timestamp":"2013-01-27 16:07:02","wl_key4":23095}
{"wl_id":0,"wl_customer_id":0,"wl_webpage_name":"webpage#00","wl_timestamp":"2013-01-27 16:07:02","wl_key5":200527}
import io
import sys
import re
i = 0
with io.open('lateral_result.json', 'w', encoding="utf-8") as f, io.open('lat.json', encoding="utf-8") as g:
for line in g:
x = re.search('(.*wl_timestamp":"[^"]+",)', line)
y = re.search('("wl_key[^,]+),', line)
for y in line:
i = i + 1
print (x.group(0), y.group(i),'}', file=f)
str をグループとして取得できないというエラーが常に発生しますが、次の for ループに正規表現を配置すると、最初の結果が取得されて何も実行されないか、別の方法で同じ結果が取得されて書き込まれます行内で文字が見つかるたびにそれを繰り返します。