【问题标题】:Remove double quotation from dict?从字典中删除双引号?
【发布时间】:2018-02-05 01:48:34
【问题描述】:

我有一个 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)

【问题讨论】:

  • 按照您的建议进行直接字符替换会导致各种问题。例如。它也将替换转义的双引号。不要这样做。

标签: python json python-2.7 csv


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多