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

使用含JSON数据的CSV配置时引号读取异常,POST请求引号重复如何解决?

解决CSV存储POST请求JSON时引号重复的问题

这个问题我之前也碰到过,根源是CSV的引号转义机制在搞鬼——当你把完整的JSON字符串作为CSV的单个字段存储时,CSV会自动对内部的双引号进行转义(变成两个连续双引号),同时给整个字段套上外层引号,导致发送POST请求时JSON格式被破坏。下面给你几个可行的解决方法:

方法1:放弃用CSV存储完整JSON(最稳妥)

CSV本来就不是为存储嵌套JSON设计的,直接改用纯JSON文件来存储请求数据,完全避开CSV的转义问题:

  • 新建一个.json文件,把你的请求体直接写进去:
    {"Name":"","Token":-1,"TimeScheduleToken":"1","AccessRule":[{"ObjectToken":"528","ObjectName":"Common_wash_Room_Exit","RuleToken":"528","RuleType":2,"StartDate":null,"EndDate":null,"ArmingRightsId":null,"ControlModeId":null}]}
    
  • 发送请求时直接读取这个JSON文件的内容,或者解析成JSON对象后发送,不会有任何引号问题。

方法2:拆分JSON到CSV的多列

如果必须用CSV,把JSON的每个顶级键拆成CSV的一列,嵌套的数组可以单独处理(比如拆成多个列,或者用分隔符拼接数组元素):
比如你的CSV可以是这样的结构:

NameTokenTimeScheduleTokenObjectTokenObjectNameRuleTokenRuleType
-11528Common_wash_Room_Exit5282

发送请求时,再把这些列的值重新组装成完整的JSON对象,这样就不会触发CSV的引号转义。

方法3:读取CSV时还原转义的引号

如果一定要把完整JSON存在CSV的单个字段里,那在读取CSV并准备发送请求时,要正确处理转义的引号:

用Python处理的例子:

Python的csv模块会自动处理CSV的转义规则,读取后得到的字符串已经还原了单个双引号:

import csv
import json
import requests

# 读取CSV文件,假设JSON存在名为"request_body"的列里
with open("your_data.csv", "r", encoding="utf-8") as csv_file:
    reader = csv.DictReader(csv_file)
    for row in reader:
        # 自动还原转义的引号,解析成JSON对象
        request_data = json.loads(row["request_body"])
        # 发送POST请求
        response = requests.post("your_api_endpoint", json=request_data)
        # 处理响应
        print(f"请求状态码: {response.status_code}")

用Excel VBA处理的例子:

Excel在读取单元格内容时,会自动把CSV里的双引号转义还原,直接读取单元格值即可:

Sub SendPostRequest()
    Dim httpObj As Object
    Dim jsonContent As String
    Dim apiUrl As String
    
    Set httpObj = CreateObject("MSXML2.XMLHTTP")
    apiUrl = "你的API地址"
    
    ' 读取A1单元格的JSON内容(Excel已自动处理转义引号)
    jsonContent = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    
    ' 发送POST请求
    With httpObj
        .Open "POST", apiUrl, False
        .SetRequestHeader "Content-Type", "application/json"
        .Send jsonContent
        MsgBox "响应内容: " & .ResponseText
    End With
    
    Set httpObj = Nothing
End Sub

注意事项

  • 手动编辑CSV时,不要手动给JSON字段加外层引号,否则会导致双重转义;
  • 如果JSON里包含CSV的字段分隔符(比如逗号),一定要让CSV正确包裹字段,否则会导致数据拆分错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:25:39