我对 Apps 脚本/Javascript 还很陌生。我有一些使用 API 导出的 JSON 数据。
以下是我执行此操作时得到的结果:console.log(jsonData);
我正在尝试:
- 将此 JSON 数据转换为 CSV。
- 将数据放入事件电子表格的第一张表格
基本上应该是这样的:
但是我陷入了这一步,无法正确执行下一段代码...(如何转换为 CSV 并将数据放入 Google 表格中)。
下面是我的脚本的开头:
function myFunction() {
var apiKey = "MyApiKEY";
var now = new Date();
var startDate = new Date(now.setDate(now.getDate()-2))
var endDate = startDate
var startDateFormatted = Utilities.formatDate(new Date(startDate), "GMT+7", "yyyy-MM-dd");
var endDateFormatted = Utilities.formatDate(new Date(endDate), "GMT+7", "yyyy-MM-dd");
var url = 'https://public-api.vendor.com/v1/clicks?start_date='+ startDateFormatted + '&end_date=' + endDateFormatted;
var options1 = {
"method": "get",
"headers": {
"accept": "application/json",
"Authorization": apiKey
}
}
var response = UrlFetchApp.fetch(url, options1);
var jsonData = JSON.parse(response.getContentText());
// console.log(jsonData);
}
如果您能帮助我将这些数据放入 Google 表格,我将不胜感激。 如果您认为有问题或不必要,也可以随意修改我的脚本开头的任何内容。
最佳答案
我相信您的目标如下。
- 您想要将示例数据转换为 CSV 数据。
- 您希望将示例数据放在事件电子表格的第一张工作表上。
从您的展示示例数据来看,如果jsonData
是您的展示示例数据,那么进行以下修改如何?
来自:
var jsonData = JSON.parse(response.getContentText());
致:
var jsonData = JSON.parse(response.getContentText());
// I added the below script.
const headers = ["date_of_report", "vendor_name", "product_name", "category", "avg_cpc", "avg_position", "clicks", "conversions", "conversion_rate", "cost", "cpl", "channel", "country", "email", "vendor_id"];
const values = [headers, ...jsonData.data.map(e => headers.map(h => e[h] || ""))];
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
// If you want to retrieve the values as CSV data. You can use the following script.
const csv = values.map(r => r.join(",")).join("\n");
关于google-apps-script - Apps 脚本 - 将 JSON 正确导出到 Google Sheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73467721/