如何将CSV数据解析为JSON?解决两类CSV字段解析问题
解决CSV转JSON时的字段遗漏与引号残留问题
问题根源
你的CSV文件是混合格式:第一个字段date/time无引号包裹,其余字段用双引号包裹。如果解析器未正确配置引号识别规则,就会出现字段遗漏、引号残留的问题。
Python解决方案
用Python标准库csv模块,通过明确配置引号字符和分隔符,自动处理字段识别与引号去除:
import csv import json processed_data = [] # 替换为你的CSV文件路径 with open('business_data.csv', 'r', encoding='utf-8') as f: # 指定逗号为分隔符,双引号为字段包裹符 reader = csv.DictReader(f, delimiter=',', quotechar='"') for row in reader: # DictReader自动映射表头(包括无引号的date/time),同时去除字段首尾引号 processed_data.append(row) # 生成格式化JSON json_output = json.dumps(processed_data, indent=2, ensure_ascii=False) print(json_output)
Node.js解决方案
如果用Node.js处理,可使用csv-parser包(先通过npm install csv-parser安装):
const fs = require('fs'); const csv = require('csv-parser'); const results = []; fs.createReadStream('business_data.csv') .pipe(csv({ quote: '"', // 指定双引号为字段包裹符 separator: ',', // 指定逗号为分隔符 headers: true // 启用表头识别 })) .on('data', (row) => results.push(row)) .on('end', () => { console.log(JSON.stringify(results, null, 2)); });
关键配置说明
quotechar/quote:指定字段的包裹字符为双引号,解析器会自动剥离字段首尾的引号。- 表头识别:确保
date/time这类无引号的表头字段被正确映射到每一行数据,避免遗漏。
内容的提问来源于stack exchange,提问作者Mertcan Mert
相关产品推荐
相关产品推荐

