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

如何在R中写出可被Google Sheets正确读取的CSV,解决JSON列逗号分隔错位问题

问题根源

你代码里的错误配置是导致字段拆分的核心原因:

  • 手动用dQuote给列加引号属于多余操作,会和CSV写入的自动转义逻辑冲突
  • write.csv时设置quote = FALSE,导致R不会自动给包含逗号、引号的特殊字段加包裹引号,JSON内部的逗号直接被识别为字段分隔符,引发列错位

正确实现代码

适配DV360回传要求的基础版本(符合你给出的「目标输出」格式)

不需要手动修改Details列内容,直接写入时开启自动引号即可:

library(tidyverse)

write.csv(data, 
          "test.csv", 
          fileEncoding = "UTF-8",
          na = "",
          row.names = FALSE,
          quote = TRUE)

你也可以用tidyverse自带的write_csv,默认配置就符合要求,更简洁:

write_csv(data, "test.csv", na = "")

适配Google Sheets导出格式的版本

如果需要和你手动在Google Sheets修正后导出的多层转义格式对齐,提前替换内部引号即可:

data %>%
  mutate(Details = str_replace_all(Details, '"', '""')) %>%
  write.csv("test_gsheet.csv",
            fileEncoding = "UTF-8",
            na = "",
            row.names = FALSE,
            quote = TRUE)

验证说明

以上代码生成的CSV中,Details列会被自动用双引号包裹,列内的双引号会被转义为连续双引号,JSON内部的逗号不会被识别为字段分隔符,完全兼容DV360的SDF回传规则,不会出现列错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:07