LUA - table中索引为1的值无效,用于'concat'时出错

我想通过使用table.concat选项查看我在网上找到的CSV到表格转换的结果,但我总是会得到错误"table中索引为1的值无效,在'concat'中的table中"

这是源csv文件的摘录..

created_at,entry_id,conservatory,kitchen,hallway,living_toom,front_room,lean_to,outside,cabin
2021-03-03 20:17:30 UTC,3986,18.5,21.1,20,20,19.4,16.6,7.7,10.10
2021-03-03 20:47:30 UTC,3987,18.5,21.1,20,20,19.3,16.6,7.5,9.80
2021-03-03 21:17:30 UTC,3988,18.5,21.1,20,20,19.4,16.4,7.2,9.80
2021-03-03 21:47:30 UTC,3989,18.5,20.9,20,20,19.1,16.2,7.1,9.60

这是我的代码,我错过了什么?

-- CSV到Lua表格转换器

local csv={}
for line in io.lines('/home/pi/shared/feed-watts-12h.csv') do
    table.insert(csv, {})
    local i=1
    for j=1,#line do
        if line:sub(j,j) == ',' then
            table.insert(csv[#csv], line:sub(i,j-1))
            i=j+1
        end
    end
    table.insert(csv[#csv], line:sub(i,j))
end

print(csv)

local out = table.concat(csv," - ")
print(out)

完整的错误消息..

lua: home/pi/shared/convert_csv_to_table.lua:30: table中索引为1的值无效,用于'concat'时出错
stack traceback:
        [C]: in function 'concat'
        home/pi/shared/convert_csv_to_table.lua:30: in main chunk
        [C]: ?

点赞
用户2858170
用户2858170

如果您想打印该表格以进行调试,只需运行循环。

for _,line in ipairs(csv) do print(table.concat(line)) end

阅读该 CSV 文件也是熟悉字符串模式和 Lua 字符串库的好机会。它比 string.sub 更加强大。

2021-03-05 14:44:25