如何在R中解析单单元格存JSON的CSV并转换为长格式数据?
解决方案:批量解析CSV中的JSON并转换为结构化格式
没问题,我给你写个简单的Python脚本就能轻松搞定这个需求——不需要装额外的库,用Python自带的标准库就行。
步骤说明:
- 遍历你指定的CSV文件(file1.csv和file2.csv)
- 读取每个文件里唯一的单元格内容,解析成JSON对象
- 按照你要的格式,把每个Q项、对应的值和文件名逐行输出,也可以直接保存到新文件里
完整代码:
import csv import json # 定义要处理的文件列表 files_to_process = ["file1.csv", "file2.csv"] # 可选:如果要保存结果到文件,打开一个输出文件 output_file = open("responses_output.txt", "w", encoding="utf-8") for filename in files_to_process: # 读取CSV文件,取第一个单元格的内容 with open(filename, "r", encoding="utf-8") as f: reader = csv.reader(f) # 读取第一行第一列的JSON字符串 json_str = next(reader)[0] # 解析JSON为字典 responses = json.loads(json_str) # 遍历每个Q项,输出指定格式 for q_key, q_value in responses.items(): # 先打印到控制台 line = f"{q_key} {q_value} {filename}" print(line) # 如果要保存到文件,写入一行 output_file.write(line + "\n") # 关闭输出文件 output_file.close() print("处理完成!结果已保存到responses_output.txt")
使用方法:
- 把这个脚本保存成
convert_responses.py,和你的file1.csv、file2.csv放在同一个文件夹里 - 打开命令行,进入这个文件夹,运行
python convert_responses.py - 运行后,控制台会输出结果,同时会生成一个
responses_output.txt文件,里面就是你要的结构化数据
注意事项:
- 确保你的CSV文件里确实只有一个单元格,没有多余的行或列
- 如果JSON字符串里有特殊字符,脚本的
utf-8编码应该能处理大部分情况 - 建议使用Python 3.x版本运行脚本,兼容性更好
内容的提问来源于stack exchange,提问作者Gianluca
相关产品推荐
相关产品推荐

