【问题标题】:Lua - How do I extract a row of data from a JSON table (Google Sheets API)?Lua - 如何从 JSON 表(Google Sheets API)中提取一行数据?
【发布时间】:2021-10-29 20:14:50
【问题描述】:

我已经开始使用 Lua 探索 Google Sheets API,虽然我可以检索一系列值,但我只能弄清楚如何返回一列值,但我还想返回一行也是。

这是我用来检索 Google 表格中单元格 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

返回第一列(如下),而 j.values[2] 将给我第二列,依此类推..

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

我想不通的是如何返回一行,即 A1、B1、C1、D1

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

【问题讨论】:

    标签: google-sheets lua


    【解决方案1】:

    虽然我不确定你到底在寻找什么(你提到你得到A1B1C1D1,对应于一行),但如果你想检索转置结果,按列而不是按行排序,可以添加查询参数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]
    

    参考:

    【讨论】:

    • 非常感谢@lamblichus,我确实把它弄混了,我的意思是行而不是列(doh!)。 - 非常感谢您提供的表格网址,这有助于
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多