如何卷曲CSV数据的POST? 修改点:样品卷曲:示例脚本:Google Apps脚本示例情况:注意:参考文献:

说我有以下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}'

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

lucas0421 回答:如何卷曲CSV数据的POST? 修改点:样品卷曲:示例脚本:Google Apps脚本示例情况:注意:参考文献:

  • 您要使用curl命令将CSV文件上传到Google Apps脚本的Web Apps。
    • https://script.google.com/macros/s/IDENTIFIER/exec?param1=1&param2=2的URL中,我可以了解到您正在使用Google Apps脚本的Web Apps。

如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。

修改点:

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

样品卷曲:

curl -L --data-binary @sample.csv "https://script.google.com/macros/s/###/exec"
  • sample.csv是CSV文件名。使用@读取文件。
  • 通过--data-binary,可以通过包含换行符来上传CSV数据。如果使用-d,则不能包含换行符。所以请注意这一点。
  • -L是重定向。当它使用curl命令访问Web Apps时,需要使用此选项。这样,将返回ok中的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)

示例情况:

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

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

可以检索以下事件对象。因此,可以通过Utilities.parseCsv(e.postData.contents)来解析CSV数据。

{
  "parameter": {
    "a1,e1\r\na2,e2\r\na3,e3\r\na4,e4\r\na5,e5\r\na6,e6\r\na7,e7\r\na8,e8\r\na9,e9\r\na10,e10\r\n": ""
  },"contextPath": "","contentLength": 165,"queryString": "","parameters": {
    "a1,e10\r\n": [
      ""
    ]
  },"postData": {
    "type": "application/x-www-form-urlencoded","length": 165,"contents": "a1,e10\r\n","name": "postData"
  }
}

注意:

  • 修改Web应用程序的脚本后,请重新部署Web应用程序。这样,最新的脚本就会反映到Web Apps。

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。

本文链接:https://www.f2er.com/3105929.html

大家都在问