2017-02-05 9 views
0

{JSON-1} {JSON-2}
{JSON-1} {JSON-2}
{JSON-1} {JSON-2}
解析マルチタブは、PythonでJSONを分離

JSON上記のようにマルチラインとタブを区切ります。 JSON-2のみが使用されます。 このタイプのjsonをPythonで解析するには?

+0

JSON-2のみが使用されています* - とは何か、{JSON-1}は何ですか? – RomanPerekhrest

+3

これは有効なJSONファイルではないため、手動で解析する必要があります。オブジェクトの中にタブがない場合は、行を分割して各パーツを別々に解析する可能性があります。 – jonrsharpe

答えて

3

まず、データがJSONであることを無視して始めてください。そしてfor line in f

  • 分割line.split('\t')
  • を用いて2つのタブで区切られたフィールドを使用して、ファイル内のファイル
  • 反復各行json.loads()
  • を使用してPythonオブジェクトに関心のある部分を変換

    • 開き

    例:

    import json 
    
    with open('weird_file.txt', 'r') as f: 
        for line in f: 
         json1, json2 = line.split('\t') 
         j2 = json.loads(json2) 
    
         # Use j2 
    
    +0

    私はあなたのソリューションが好きです。 :-) –

    +0

    @AlexLねえ、あなたも。私は8秒であなたを打ち負かしました:-) –

    +0

    ありがとう@JonathonReinhart! これは、Pythonについて素晴らしいことの1つを示しています。これは、作業を行うための最も簡単で簡単な方法についての幅広い合意です。人々のための巨大な利益、特に読書、パイソン。これはPerlのマントラの反対です。「Rubyにも当てはまる方法があります。」 –

    2

    詳細を入力して調整する必要がありますが、このようなことはすべきことです。キーは、各行をタブで分割してから、json.loadsを使用して、必要な部分だけを解析することができます。

    import json 
    
    with open(filename, 'r') as fh: 
        for line in fh: 
         j1, j2 = line.split('\t') 
         decoded = json.loads(j2)