Вы никогда не используете sp
в своем коде.
Чтобы правильно преобразовать TSV, вы должны прочитать первую строку отдельно, чтобы получить «имена столбцов», затем прочитать следующие строки и заполнитьсписок словарей.
Вот как должен выглядеть ваш код:
import json
data=[{}]
with open('data.json', 'w') as outfile, open("data.tsv","r") as f:
firstline = f.readline()
columns = firstline.split()
lines = f.readlines()[1:]
for line in lines:
values = line.split()
entry = dict(zip(columns, values))
data.append(entry)
json.dump(data, outfile)
В результате вы получите файл со списком строк tsv в виде объектов.