python 写 CSV文件时,字段值为 json 的处理方式

Posted on 2021-03-04 17:56  Vincent90  阅读(263)  评论(0)    收藏  举报

 csv 百度百科 中的CSV规则描述如下:

 

 

根据如上规则可将 json 格式内容中的 双引号直接替换为 两个双引号,并在两端套上双引号即可,代码如下:

python 版本:python3.7.7

import json
import os

class FmtExportResult:
    """
    将 series 导出为csv格式数据
    """
    def __init__(self, **kwargs):
        pass

    def __csv_col(self, col):
        new_col = '''"{}"'''.format(str(col).replace('''"''', '''""'''))
        return new_col

    def __fmt_row(self, cols):
        return ",".join([self.__csv_col(x) for x in cols])

    def execute(self, row):
        return self.__fmt_row(row)


def main():
    rows = [
        [{"A":"a1", "B":"b1", "C":"c1"}, 2, 3],
        [{"K":"K1", "F":"F1", "N":"n1"}, 2, 3]
    ]
    fmt_obj = FmtExportResult()
    with open("/Users/luwenchang/Downloads/abc.csv", "w") as f:
        content = """F1,F2,F3"""

        for row in rows:
            content = content + os.linesep + fmt_obj.execute(row)

        f.write(content)
        f.flush()

if __name__ == '__main__':
    main()

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3