Python列表JSON序列化并换行

134 阅读1分钟

废话不多说,直接上代码:

import json, os

jsonDir = r'C:\file\json'

def create_json_file(rowList, fileName):
    if len(rowList) == 0:
        # 若为空,则不用生成
        return

    if not os.path.exists(f'{jsonDir}'):
        os.makedirs(f'{jsonDir}')
    with open(f'{jsonDir}/{fileName}.json', 'w', encoding='utf-8') as f:
        f.write('[\n')
        count = 0
        for row in rowList:
            json.dump(row, f, ensure_ascii=False, separators=(',', ':'), sort_keys=True)
            count += 1
            if count != len(rowList):
                f.write(',\n')
            else:
                f.write('\n')
        f.write(']')
        # 清空列表
        rowList.clear()

if __name__ == '__main__':
    u1 = {'name': '张三', 'age': 10}
    u2 = {'name': '李四', 'age': 20}
    userList = []
    userList.append(u1)
    userList.append(u2)
    create_json_file(userList, 'users')

输出的文件内容如下:

[
{"age":10,"name":"张三"},
{"age":20,"name":"李四"}
]