You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多行CSV转换为单行JSON字符串用于REST API?

解决CSV多行转JSON格式字符串的问题

我来帮你搞定这个把CSV多行键值对转成REST API所需的JSON格式字符串的问题!先梳理下你的需求:把CSV里的每行Key Value格式数据,转换成"key1":"Value1","key2":"Value2","key3":"Value3"这样的字符串,对吧?

问题分析

你现在的代码思路是对的,但还没完成拼接逻辑,另外要注意几个细节:比如跳过CSV的标题行(第一行Key Value)、处理CSV的分隔符(如果是空格分隔的话,需要指定delimiter=' '),还有把键名转成小写匹配你的示例输出。

完整解决方案代码

下面是可以直接运行的代码,分两种场景:

场景1:生成你需要的属性字符串(不带大括号)

import csv

# 用来存储每个格式化后的键值对
key_value_list = []

with open('file.csv', 'r') as csvfile:
    # 如果你的CSV是空格分隔,一定要指定delimiter=' ',默认是逗号
    csv_reader = csv.reader(csvfile, delimiter=' ')
    # 跳过第一行的标题行(Key Value)
    next(csv_reader)
    
    for row in csv_reader:
        # 确保每行有两个元素,避免索引错误
        if len(row) == 2:
            key, value = row
            # 格式化成"key":"value",同时把键名转小写
            key_value_list.append(f'"{key.lower()}":"{value}"')

# 用逗号连接所有键值对,得到最终字符串
result = ','.join(key_value_list)
print(f'Json= {result}')

场景2:生成完整的JSON对象(如果后续API需要完整的JSON结构)

如果你的REST API需要的是完整的JSON对象(比如{"key1":"Value1","key2":"Value2"}),可以用csv.DictReader配合json模块来实现:

import csv
import json

data_dict = {}

with open('file.csv', 'r') as csvfile:
    csv_reader = csv.DictReader(csvfile, fieldnames=['key', 'value'], delimiter=' ')
    next(csv_reader)  # 跳过标题行
    
    for row in csv_reader:
        data_dict[row['key'].lower()] = row['value']

# 转换成标准JSON字符串
full_json = json.dumps(data_dict)
print(f'Json= {full_json}')

关键细节说明

  • 跳过标题行:用next(csv_reader)跳过第一行的Key Value,避免把标题也当成数据处理
  • 分隔符指定:如果你的CSV是空格分隔,必须设置delimiter=' ',否则csv.reader会默认按逗号拆分,导致读取错误
  • 高效拼接:用列表收集每个键值对再用join拼接,比循环里直接累加字符串性能更好,尤其是数据量大的时候
  • 键名小写:用key.lower()把Key1转成key1,匹配你想要的输出格式

内容的提问来源于stack exchange,提问作者Naba Ansari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:25:12