Lua - 如何从 JSON table (Google 工作表 API) 中提取一行数据?

Lua - How do I extract a row of data from a JSON table (Google Sheets API)?

我已经开始使用 Lua 探索 Google 工作表 API,虽然我可以检索一系列值,但我只能弄清楚如何 return 一列值,但我也想 return 一行。

这是我用来检索 Google sheet 中单元格 A1 到 D5 的值的 Lua 代码示例。 (4 列 4 行)

为了帮助我跟踪来自哪里的内容,我将每个单元格的名称添加到单元格本身。

local socket = require 'socket'
local ssl = require 'ssl'
local https = require 'ssl.https'

local body, code, headers, status = https.request("https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?key=[MyAPIkey]")
print(body)
print("---------------------")

--[[ Which returns the following…
{
   "range":"Sheet1!A1:D5",
   "majorDimension":"ROWS",
   "values":[
      [
         "Cell A1",
         "Cell B1",
         "Cell C1",
         "Cell D1"
      ],
      [
         "Cell A2",
         "Cell B2",
         "Cell C2",
         "Cell D2"
      ],
      [
         "Cell A3",
         "Cell B3",
         "Cell C3",
         "Cell D3"
      ],
      [
         "Cell A4",
         "Cell B4",
         "Cell C4",
         "Cell D4"
      ]
   ]
}
]]--

为了显示专栏,我执行以下操作..


local json = require "dkjson"
local j = json.decode(body)
    for k,v in pairs(j.values[1]) do
    print(k,v)
end

return第一列(下),j.values[2] 给我第二列,依此类推..

1     Cell A1     
2     Cell B1     
3     Cell C1     
4     Cell D1  

我无法解决的是如何 return 一行,即 A1、B1、C1、D1

请有人解释我如何从列表中检索任何行,并且能够始终如一地执行此操作,而不管我决定检索的单元格范围如何?

虽然我不确定你到底在找什么(你提到你得到 A1B1C1D1,这对应于a row), 如果要检索转置的结果,按列排序而不是按行排序,可以添加查询参数majorDimension=COLUMNS(如果不设置该参数,则默认为ROWS,你可以见 ValueRange).

因此,您必须将请求的 URL 更改为:

https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?key=[MyAPIkey]

收件人:

https://sheets.googleapis.com/v4/spreadsheets/[mysheetID]/values/A1:D5?majorDimension=COLUMNS&key=[MyAPIkey]

参考: