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
请有人解释我如何从列表中检索任何行,并且能够始终如一地执行此操作,而不管我决定检索的单元格范围如何?
虽然我不确定你到底在找什么(你提到你得到 A1
、B1
、C1
、D1
,这对应于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]
参考:
我已经开始使用 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
请有人解释我如何从列表中检索任何行,并且能够始终如一地执行此操作,而不管我决定检索的单元格范围如何?
虽然我不确定你到底在找什么(你提到你得到 A1
、B1
、C1
、D1
,这对应于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]