【问题标题】:Trying to convert a big tsv file to json试图将大 tsv 文件转换为 json
【发布时间】:2019-01-21 07:14:08
【问题描述】:

我有一个 tsv 文件,我需要将它转换成一个 json 文件。我正在使用这个 python 脚本,它正在导出一个空的 json 文件。

import json
data={}
with open('data.json', 'w') as outfile,open("data.tsv","r") as f:
for line in f:
   sp=line.split()
   data.setdefault("data",[])
json.dump(data, outfile)

【问题讨论】:

  • 你永远不会对你的 sp 变量做任何事情。您只需将 data 变量的默认“数据”属性设置为空字符串。
  • 您的程序不会将值从 sp 复制到数据。难怪当您编写输出时它们不在那里。

标签: python json csv


【解决方案1】:

这可以通过 pandas 完成,但不确定性能

df.to_json

 df = pd.read_csv('data.tsv',sep='\t') # read your tsv file 
 df.to_json('data.json') #save it as json . refer orient='values' or 'columns' as per your requirements 

【讨论】:

    【解决方案2】:

    您从不在代码中使用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 行列表作为对象的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 2019-04-18
      • 2017-08-20
      相关资源
      最近更新 更多