データの各行に文字区切り値が含まれているように見えるので、Python csv
モジュールを使用すると論理的に読み取ることができます。特にcsv.DictReader
は各行を辞書として返すので、そのデータをJSON形式に変換します。
import csv
import json
import sys
def open_csv(filename, mode='r'):
"""Open a csv file in proper mode depending on Python verion."""
return(open(filename, mode=mode+'b') if sys.version_info[0] == 2 else
open(filename, mode=mode, newline=''))
json_objects = []
fields = 'name age gender year occupation'.split()
with open_csv('records.txt', 'r') as file:
reader = csv.DictReader(file, fieldnames=fields, delimiter=';', skipinitialspace=True)
for row in reader:
json_objects.append(row)
print(json.dumps(json_objects))
出力:
[{"gender": "female", "age": "24", "occupation": "student", "name": "mary", "year": "1993"}, {"gender": "male", "age": "21", "occupation": "student", "name": "john", "year": "1982"}, {"gender": "male", "age": "22", "occupation": "student", "name": "luke", "year": "1988"}]
あなたのJSONの構造は何ですか? 'json.loads()'は、データが標準のJSON形式である場合に役立ちます。ファイル形式は 'csv'に似ていますが、' json.loads() 'はここでは意味がありません – ZdaR
結果JSONをどのようなデータ構造で表現したいのですか?文字列のリスト? –