如何对 CSV 数据进行curl POST?

2024-06-25

假设我有以下 CSV 数据:

fruit.csv
fruit,count,
Apples,152,
Bananas,23,

我该如何写一个curl使用以下形式的命令来发布该数据?

curl --request POST \
  --url 'https://script.google.com/macros/s/IDENTIFIER/exec?param1=1&param2=2' \
  --header 'content-type: application/json' \
  --data '{"json": true}'

具体来说,参数字符串、标头和其他选项是什么样的?


  • You want to upload a CSV file using curl command to Web Apps of Google Apps Script.
    • 从网址https://script.google.com/macros/s/IDENTIFIER/exec?param1=1&param2=2,我可以理解您正在使用 Google Apps Script 的 Web Apps。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能答案之一。

修改要点:

  • 在你的情况下,它使用--data-binary用于上传文件的curl命令的选项。
  • 在 Web Apps 中,它使用Utilities.parseCsv()用于解析 CSV 数据。

示例卷曲:

curl -L --data-binary @sample.csv "https://script.google.com/macros/s/###/exec"
  • sample.csv是 CSV 文件名。该文件的读取方式为@.
  • By --data-binary,可以通过包含换行符来上传 CSV 数据。如果-d使用时,不能包含换行符。所以请小心这一点。
  • -L是重定向。当使用curl命令访问Web Apps时,需要使用该选项。这样,ok of ContentService.createTextOutput("ok")被返回。

示例脚本:Google Apps 脚本

function doPost(e) {
  var csv = Utilities.parseCsv(e.postData.contents);

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  sheet.getRange(sheet.getLastRow() + 1, 1, csv.length, csv[0].length).setValues(csv);

  return ContentService.createTextOutput("ok");
}
  • 通过上面的脚本,当运行示例curl命令时,sample.csv上传,上传的数据解析为Utilities.parseCsv()。然后,将解析后的值放入工作表中Sheet1活动电子表格的。
  • 如果分隔符不是,,请设置为parseCsv(csv, delimiter).

示例情况:

当以下 CSV 文件 (sample.csv) 上传到上述 Web 应用程序curl -L --data-binary @sample.csv "https://script.google.com/macros/s/###/exec",

a1,b1,c1,d1,e1
a2,b2,c2,d2,e2
a3,b3,c3,d3,e3
a4,b4,c4,d4,e4
a5,b5,c5,d5,e5
a6,b6,c6,d6,e6
a7,b7,c7,d7,e7
a8,b8,c8,d8,e8
a9,b9,c9,d9,e9
a10,b10,c10,d10,e10

可以检索以下事件对象。所以CSV数据可以通过以下方式解析Utilities.parseCsv(e.postData.contents).

{
  "parameter": {
    "a1,b1,c1,d1,e1\r\na2,b2,c2,d2,e2\r\na3,b3,c3,d3,e3\r\na4,b4,c4,d4,e4\r\na5,b5,c5,d5,e5\r\na6,b6,c6,d6,e6\r\na7,b7,c7,d7,e7\r\na8,b8,c8,d8,e8\r\na9,b9,c9,d9,e9\r\na10,b10,c10,d10,e10\r\n": ""
  },
  "contextPath": "",
  "contentLength": 165,
  "queryString": "",
  "parameters": {
    "a1,b1,c1,d1,e1\r\na2,b2,c2,d2,e2\r\na3,b3,c3,d3,e3\r\na4,b4,c4,d4,e4\r\na5,b5,c5,d5,e5\r\na6,b6,c6,d6,e6\r\na7,b7,c7,d7,e7\r\na8,b8,c8,d8,e8\r\na9,b9,c9,d9,e9\r\na10,b10,c10,d10,e10\r\n": [
      ""
    ]
  },
  "postData": {
    "type": "application/x-www-form-urlencoded",
    "length": 165,
    "contents": "a1,b1,c1,d1,e1\r\na2,b2,c2,d2,e2\r\na3,b3,c3,d3,e3\r\na4,b4,c4,d4,e4\r\na5,b5,c5,d5,e5\r\na6,b6,c6,d6,e6\r\na7,b7,c7,d7,e7\r\na8,b8,c8,d8,e8\r\na9,b9,c9,d9,e9\r\na10,b10,c10,d10,e10\r\n",
    "name": "postData"
  }
}

Note:

  • 当您修改Web Apps的脚本时,请重新部署Web Apps。这样,最新的脚本就会反映到Web Apps中。

参考:

  • --数据二进制 https://curl.haxx.se/docs/manpage.html#--data-binary
  • -L, --位置 https://curl.haxx.se/docs/manpage.html#-L
  • 解析CSV(csv) https://developers.google.com/apps-script/reference/utilities/utilities#parsecsvcsv

如果我误解了你的问题并且这不是你想要的方向,我很抱歉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对 CSV 数据进行curl POST? 的相关文章

  • 在 PHP 中处理 PUT/DELETE 参数

    我正在做我的CodeIgniter 的 REST 客户端库 http github com philsturgeon codeigniter restclient我正在努力弄清楚如何在 PHP 中发送 PUT 和 DELETE 参数 在一些
  • Web 服务器何时清除 PHP 会话标识符?

    背景 我正在尝试编写一个脚本 定期连接到网络服务器并检查特定页面上的某些信息是否已更改 我已经使用 bash 用于脚本 curl 用于实际连接 和 crontab 用于调度 的组合来完成这项工作 由于服务器需要身份验证 我首先使用curl
  • 使用 Google Apps 脚本从网页提取数据时的字符编码问题

    我已经使用 Google Apps 脚本编写了一个脚本 将网页中的文本提取到 Google 表格中 我只需要这个脚本来处理特定的网页 因此它不需要是通用的 该脚本几乎完全按照我想要的方式工作 除了我遇到了字符编码问题 我正在提取希伯来语和英
  • 在 Google Apps 脚本中获取数据后构建卡片并更新它

    我正在尝试构建一个 Gmail 插件 其中包含 2 个外部 API 调用 第一个是快的 200ms 第二个是慢的 5s 因此 我想首先使用第一次获取的结果构建卡 然后在第二次调用完成后更新卡 是否可以 Call fetchAll并在每次请求
  • 如何对 CSV 数据进行curl POST?

    假设我有以下 CSV 数据 fruit csv fruit count Apples 152 Bananas 23 我该如何写一个curl使用以下形式的命令来发布该数据 curl request POST url https script
  • 如何在不使用太多内存的情况下打乱大型 csv 文件的行并将结果写入新的 csv 文件?

    因此 如果我有一个 csv 文件 如下所示 User Gender A M B F C F 然后我想编写另一个 csv 文件 其中行像这样打乱 作为示例 User Gender C F A M B F 我的问题是我不知道如何随机选择行并确保
  • 使用 Google Apps 脚本将标题样式应用到单词的所有实例

    我在 Google 文档中使用 Google App 脚本 如何编写一个函数来查找某个单词的所有实例并对其应用标题样式 例如 我想要 狗 的每个实例 Cats Dogs Fish 并将 dogs 样式设置为 Heading 2 如下所示 C
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • Google Apps 脚本 oauth connect 不适用于 trello

    我一直在尝试使用 oAuth谷歌应用脚 本 https docs google com macros 访问 trello 数据 但 OAuthService API 似乎对 oAuth 服务做出了一些假设 并且 trello 无法以这种方式
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 将数据从 CSV 文件导入 MySQL,科学记数法

    我正在使用 LOAD DATA INFILE 从 CSV 读取数据并将其插入到 MySQL 表中 问题在于 CSV 中的一列采用科学记数法 当读取该列并将其加载到表中时 它不会进入 DOUBLE FLOAT 或 REAL 类型的列 有针对这
  • 如何使用 d3js v5 将 CSV 文件读入数组 [重复]

    这个问题在这里已经有答案了 我正在创建一个数据仪表板 该仪表板应允许用户指向其文件系统上的 CSV 文件 然后将其上传到仪表板以对其执行各种可视化操作 我正在使用一个很好的 d3js 示例进行可视化 但我发现的示例都不包含读取 CSV 文件
  • 如何在 Google 脚本中输入提示 Google Types?

    我正在尝试在 Google Script 中输入一堆 javascript 并且我已经尝试了以下操作 Get named range given by name param String name return Range function
  • dask 可以并行读取 csv 文件吗?

    我正在将大型文本文件转换为 HDF 存储 希望能够更快地访问数据 转换工作正常 但是从 csv 文件读取不是并行完成的 它真的很慢 SSD 上的 1GB 文本文件大约需要 30 分钟 所以我的猜测是它不受 IO 限制 有没有办法让它在多个线
  • 如何使用R在csv文件中按列添加数据?

    我有向量中包含的信息 例如 sequence1 lt seq 1 20 sequence2 lt seq 21 40 我想将该数据附加到文件中 所以我使用 write table sequence1 file test csv sep ap
  • PowerShell:导入不带标题的 CSV 并删除部分重复行

    我有一个日志文件 其格式为 CSV 没有标题 第一列基本上是所记录问题的唯一标识符 对于同一问题标识符 可能有多行具有不同的详细信息 我想删除第一列重复的行 因为此时我不需要其他数据 目前我对 PowerShell 已经有了相当基本的了解
  • Windows 卷曲批处理文件

    我想使用 Windows 批处理文件进行 mailgun 卷曲调用 由于Windows shell不支持多行 如何在Windows批处理文件中执行以下curl函数 curl s user api key xxxxxxxxxx https a
  • 如何使用meteor将存储在数据库中的json转换为csv

    我想下载从数据库 nodeDB 生成的 CSV 文件 该文件包含以下条目 这些条目应该仅充当标题 META TEMPLATE NAME B TEMPLATE GROUP Product KEYWORDS cc TEMPLATE SUBGRO
  • 从 Chrome 扩展程序访问 Google Apps 脚本 API 导致 403 错误

    我想通过 Google Chrome 扩展程序在外部使用 Google AppScript 功能编辑我的 Google 文档 为了实现这一目标 我执行了以下步骤 通过 Google Docs 设置脚本Tools gt Script Edit
  • 在nodejs中从服务器下载.zip文件

    我正在使用 MEAN 其中我想允许用户从服务器下载 zip 文件 所以基本上我必须做以下事情 从某些数据创建 csv 文件 将该文件存储到某个目录中 将这些文件压缩为 zip 当用户单击该按钮时 应该下载并读取压缩文件 我已经完全达到了1

随机推荐

  • 使用 mle() 估计自定义分布的参数

    我有以下代码 我希望估计自定义分布的参数 有关分发的更多详细信息 https stackoverflow com q 56522903 4930944 然后使用估计的参数 我想看看估计的 PDF 是否类似于给定数据的分布 它应该与给定数据的
  • 使用特征值的子矩阵和索引

    我目前正在开发一个 MATLAB 项目 我想使用 C 和 Eigen 重新实现计算量最大的部分 我想知道是否有办法执行以下操作 MATLAB语法 B A A lt 3 对于那些不熟悉 MATLAB 的人来说 上述命令初始化一个由 A 中值小
  • 如何从准备好的语句中获取标量结果?

    是否可以将准备好的语句的结果设置为变量 我正在尝试创建以下存储过程 但失败了 第 31 行出现错误 1064 42000 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 stmt USING m c a 附
  • 依赖注入与程序集依赖

    假设我有以下项目结构 Application lt gt BusinessLogic lt gt DataAccessLayer 我已经准备好所有类型来使用穷人的依赖注入 现在我想介绍使用 Unity 的真正的依赖注入 但我正在努力寻找将依
  • 在 Log 中打印布尔值

    我是否可以在日志消息中打印从方法返回的布尔值 我可以打印字符串值 但我不确定如何在日志消息中打印布尔值 Yes Log v booleanValue or Log v Boolean toString booleanValue
  • 使用值类参数的 Mockito 存根方法失败并出现 NullPointerException

    使用类型化值类作为 ID 是 Scala 中的常见模式 然而 在存根以值类作为参数的方法时 Mockito 似乎遇到了问题 在下面的示例中 第一个具有实际值的存根工作得很好 但第二个使用参数匹配器的存根会抛出 NullPointerExce
  • Delphi - 引用在运行时创建的组件

    我正在使用 Delphi 5 并且在运行时创建许多面板 然后在面板上创建按钮 显然也是在运行时创建 我需要这样做 因为将来我可能需要动态创建更多面板 按钮组合 我可以完成所有这些 但我不知道如何引用我创建的面板 因为我找不到访问面板组件名称
  • Spark中RDD转换的结果是什么?

    谁能解释一下 结果是什么RDD 转换 它是新的数据集 数据副本 还是只是新的指针集 用于过滤旧数据块 RDD 转换允许您在 RDD 之间创建依赖关系 依赖关系只是产生结果 程序 的步骤 谱系链 依赖字符串 中的每个 RDD 都有一个计算其数
  • Python:kwargs.pop() 和 kwargs.get() 之间的区别

    我已经看到了这两种方法 但我不明白有什么区别以及我应该使用什么作为 最佳实践 def custom function kwargs foo kwargs pop foo bar kwargs pop bar def custom funct
  • Fortran 77 中的局部变量是静态的还是堆栈动态的?

    对于我的编程语言 第一类硬件问题询问 FORTRAN 中的局部变量是静态的还是堆栈动态的 初始化为默认值的局部变量是静态的还是堆栈动态的 向我展示一些带有解释的代码以支持您的答案 提示 检查这一点的最简单方法是让您的程序测试子程序的历史敏感
  • 仅允许 Firebase 实时数据库中的唯一值[重复]

    这个问题在这里已经有答案了 这是我的数据结构 root mydata KqI0uf 1 bD3oLlx2h Joe Kdk0bf 1 bx0oLlb9a Mike Kox8gf 1 b36onlT3h Eve 如何编写规则以仅允许 Fire
  • 如何使用签名网址将文件上传到谷歌云存储桶

    我正在开发一个 Angular 应用程序 用于显示谷歌云存储桶的内容 对于后面 我在nodeJS中使用谷歌云功能 正如他们在上传文件的文档中提到的 我创建了一个函数来生成签名 url 但是当我使用签名 url 发送文件时 我在浏览器中收到了
  • 更改 QGraphicsView 中的光标

    我正在尝试更改 a 的光标QGraphicsView而ScrollHandDrag已开启 但似乎不起作用 如果禁用 我可以更改光标ScrollHandDrag但不是在它处于活动状态时 我不知道我可能做错了什么 下面是重现该问题的代码的一部分
  • 从 WatchKit 中的模态视图传回数据

    当模态呈现或推送界面控制器时 我们可以指定context参数将一些数据传递给新控制器 如下所示 Push self pushControllerWithName MyController context NSDictionary dicti
  • 如何获取型号为 GT-I9300 的三星 Galaxy SIII 的 OEM USB 驱动程序

    我想要获取 Galaxy SIII 的 OEM USB 驱动程序 我关注这个官方 OEM USB 驱动程序页面 http developer android com tools extras oem usb html Drivers所以我选
  • JavaScript Github Action:在没有 set-output 和 @actions/core 的情况下写入 $GITHUB_OUTPUT

    对于这个问题 有几个限制 这需要在没有任何 NPM 包 包括 actions core 的情况下工作 因此我不能做core setOutput name value 以前是可以的console log set output name key
  • Server.Transfer 到 HttpHandler

    我有一个具有以下 ProcessRequest 方法的 IHttpHandler public void ProcessRequest HttpContext context int id Convert ToInt32 context R
  • 登录模块控制标志在 JAAS 配置中不可用 - Scala Kafka

    尝试使用 kerberos 身份验证连接到 Kafka 时遇到问题 使用 scala 和我的jaas config看起来像这样 KafkaClient com sun security auth module Krb5LoginModule
  • openssl/ssl.h 未找到,但已通过自制程序安装

    我正在运行 El Capitan 的 Mac 上开发一个 C 项目 即使在使用 Homebrew 安装 openssl 后也会出现此错误 g Wall g std c 11 I libSocket src I libData src c s
  • 如何对 CSV 数据进行curl POST?

    假设我有以下 CSV 数据 fruit csv fruit count Apples 152 Bananas 23 我该如何写一个curl使用以下形式的命令来发布该数据 curl request POST url https script