lua - LUA - 'concat' 表中索引 1 处的无效值(表)
问题描述
我正在尝试使用 table.concat 选项查看我在网上找到的 csv 到表转换的结果,但我总是收到错误“'concat' 表中索引 1 处的无效值(表)”
这是源 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 to Lua table converter
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: invalid value (table) at index 1 in table for 'concat'
stack traceback:
[C]: in function 'concat'
home/pi/shared/convert_csv_to_table.lua:30: in main chunk
[C]: ?
解决方案
例如,如果您想打印该表以进行调试,只需运行一个循环。
for _,line in ipairs(csv) do print(table.concat(line)) end
阅读 CSV 也是一个很好的机会,让您熟悉字符串模式和 Lua 的字符串库。它提供的远不止string.sub
.
推荐阅读
- awk - 将最大值除以第二大值
- javascript - 未捕获的类型错误:this.activeArray[i] 未定义
- distribution - 给定一个边际分布和另一组数据,你能削减数据以匹配边际分布吗?
- unity3d - 自定义值滑块统一
- python-sphinx - 如何将带有 Sphinx 和 myst-parser 的 Markdown 导入 Readthedocs?
- android - 如何自定义 Android 10 (Samsung A10) Chrome Share 菜单(来自移动 Chrome0?
- sequelize.js - 使用多个关联记录创建 - Sequelize
- c# - 如何在 C# 中制作嵌套自定义 app.config
- javascript - 如何使函数在更新状态下工作?
- ios - swift - UISwitch isOn时如何在不同的视图中显示/隐藏标签?