ファイルには以下のような行がたくさんあります。
{"first_name":"John","last_name":"Smith","age":30}
{"first_name":"Tim","last_name":"Johnson","age":34}
最初に、これを json モジュールを使用して辞書としてインポートしようとしたので、キーの値を出力することができました。問題は、一部の行に右中括弧がないか、他の問題があり、フィールドが行ごとに同じ順序になっていないことです。それはインポートを妨げています。
だから今、私はこれを正規表現でやろうとしています。私はこれを持っています:
fo = open("c:\\newgoodtestsample.txt", "r")
x = fo.read()
match1 = re.search('first_name"(.*?)"(.*?)"', x)
if match1:
print match1.group(2)
これは、名前だけの値を返します。他のフィールドも返せるようにしたいです。これは正規表現テスターで機能しましたが、コードで機能させることができません:
(first_name|last_name|age)"(.*?)"(.*?)"
最後に、それが判明したら、ファイルの各行 (最初の行だけでなく) を読み取り、要求された正規表現データを各行からファイルに出力する必要があります。for ループを挿入しようとしましたが、最初の行が何度も繰り返されるため、挿入が間違っているに違いありません。任意の支援をいただければ幸いです。