从dict中删除双引号?

时间:2018-02-05 01:48:34

标签: python json python-2.7 csv

我有一个4.5GB的CSV文件,我需要从中删除"。目前的记录可能如下:

47477209,11,HIST,"

CANCELLED",,,,,,,,47140495

然而,它需要看起来像这样:

47477209,11,HIST,CANCELLED,,,,,,,,47140495

否则当我在spark中使用它作为DF时,它认为它是一个新的记录。

这是我目前在阅读CSV并写信至JSON时所拥有的内容:

f = open('changeset.csv', 'rb' )
reader = csv.DictReader(f) 

jsonoutput = 'masterlist2.0.json'
with open(jsonoutput, 'w') as f:
    for x in reader: 
        json.dump(x,f)
        f.write('\n')

我以为你可以做这样的事情......

json.dump(x.replace('"', ''),f)

1 个答案:

答案 0 :(得分:2)

看起来您的问题不是"。您的问题可能是数据中的换行符。因为这些,CSV编写器正在添加引号。您可以使用以下命令从第4个字段中删除换行符和其他周围的空白区域:

for x in reader:
    x[3] = x[3].strip()
    json.dump(x, f)
    f.write('\n')