Python中仅用输入输出变量实现JSON转NDJSON的方法
修改方案
你只需要替换原代码里的文件读写逻辑,完全不需要改动核心的JSON序列化逻辑,就能适配无文件IO的云环境:
- 用
json.loads()直接解析存储了JSON内容的输入字符串,替换原来从文件读入的json.load()逻辑 - 把逐行写入文件的操作改成字符串拼接,最终生成完整的NDJSON字符串赋值给输出变量即可
变量约定:以下示例中输入变量名为
input_json_str(存储原始JSON内容的字符串),输出变量名为output_ndjson_str(存储转换后的NDJSON结果),可根据你云环境的实际变量名直接替换。
修改后的可直接运行代码:
import json # 从输入字符串解析JSON数据,替代原文件读取逻辑 data = json.loads(input_json_str) # 逐行序列化单条记录 serialized_records = [json.dumps(record, ensure_ascii=False) for record in data] # 拼接为标准NDJSON格式字符串,赋值给输出变量,替代原文件写入逻辑 output_ndjson_str = '\n'.join(serialized_records) + '\n'
注意事项
- 新增的
ensure_ascii=False参数会保留中文等非ASCII字符的原始显示,不会转义为\uXXXX编码,不需要可以删掉该参数 - 该实现和原参考代码的输出格式完全一致,每条JSON记录末尾带换行符,符合NDJSON标准规范
- 如果你的输入JSON最外层不是数组结构(比如是单个JSON对象),需要先把对象包装为单元素数组再遍历,否则会抛出遍历异常
内容的提问来源于stack exchange,提问作者Collaborator
相关产品推荐
相关产品推荐

