我需要将表格转换为逗号分隔列表以便将其保存到文本文件。 Lua中有这样的内置方法吗?Lua - 将表格转换成逗号分隔列表
7
A
回答
2
没有内置函数,但在网上有例子。
0
有没有内置的方式,但有一些相对简单的选项,如果你想自己构建它。这里有一些链接,可以帮助你找出你要如何把它一起:
http://www.lua.org/pil/12.1.html
http://lua-users.org/wiki/TableSerialization
0
没有,没有一个“内置”功能这一点。但是自己做并不难。我保留一个脚本,以递归方式将Lua表作为Lua脚本直接写入文件,然后可以像Lua脚本一样加载和执行Lua脚本。
--This file exports a function, WriteTable, that writes a given table out to a given file handle.
local writeKey = {};
function writeKey.string(hFile, value, iRecursion)
WriteFormatted(hFile, "[\"%s\"]", value);
end
function writeKey.number(hFile, value, iRecursion)
WriteFormatted(hFile, "[%i]", value);
end
local writeValue = {};
function writeValue.string(hFile, value, iRecursion)
WriteFormatted(hFile, "[==[%s]==]", value);
end
function writeValue.number(hFile, value, iRecursion)
WriteFormatted(hFile, "%i", value);
end
function writeValue.boolean(hFile, value, iRecursion)
if(value) then hFile:write("true"); else hFile:write("false"); end;
end
function writeValue.table(hFile, value, iRecursion)
WriteTable(hFile, value, iRecursion)
end
local function WriteFormatted(hFile, strFormat, ...)
hFile:write(string.format(strFormat, ...));
end
local function WriteForm(hFile, strFormat, ...)
hFile:write(string.format(strFormat, ...));
end
local function WriteTabs(hFile, iRecursion)
for iCount = 1, iRecursion, 1 do
hFile:write("\t");
end
end
function WriteTable(hFile, outTable, iRecursion)
if(iRecursion == nil) then iRecursion = 1; end
hFile:write("{\n");
local bHasArray = false;
local arraySize = 0;
if(#outTable > 0) then bHasArray = true; arraySize = #outTable; end;
for key, value in pairs(outTable) do
if(writeKey[type(key)] == nil) then print("Malformed table key."); return; end
if(writeValue[type(value)] == nil) then
print(string.format("Bad value in table: key: '%s' value type '%s'.", key, type(value)));
return;
end
--If the key is not an array index, process it.
if((not bHasArray) or
(type(key) ~= "number") or
not((1 <= key) and (key <= arraySize))) then
WriteTabs(hFile, iRecursion);
writeKey[type(key)](hFile, key, iRecursion + 1);
hFile:write(" = ");
writeValue[type(value)](hFile, value, iRecursion + 1);
hFile:write(",\n");
end
end
if(bHasArray) then
for i, value in ipairs(outTable) do
WriteTabs(hFile, iRecursion);
writeValue[type(value)](hFile, value, iRecursion + 1);
hFile:write(",\n");
end
end
WriteTabs(hFile, iRecursion - 1);
hFile:write("}");
end
11
如果您的表是一个数组,你可以使用table.concat
打印的CSV:
t={10,20,30}
print(table.concat(t,","))
输出10,20,30
。
相关问题
- 1. 转换Teradata表列逗号分隔值
- 2. Bash - 转换逗号分隔列表
- 3. 如何将列表<string>转换为逗号分隔列表中的逗号分隔列表
- 4. 将由空格分隔的整列列表转换为逗号整数列表?
- 5. 将IP列表(带单引号)转换为逗号分隔
- 6. PHP MYSQL - 搜索逗号,逗号分隔列表分隔列表
- 7. Excel将列转换为逗号分隔
- 8. 将excel表单转换成逗号分隔的文本文件
- 9. 使用linq转换逗号分隔列表中的列表?
- 10. 转换地址的列表,以逗号分隔列表
- 11. 将逗号分隔的字符串转换为变量列表?
- 12. Python将逗号分隔列表转换为熊猫数据框
- 13. 将逗号分隔的整数列表转换为数组
- 14. 将逗号分隔值转换为列表<Long>
- 15. 如何将NVARCHAR逗号分隔列表转换为INT?
- 16. 将列表转换为逗号分隔的MySQL插入语句
- 17. 如何将列表转换为以逗号分隔的C#?
- 18. 将逗号分隔的双字符串转换为列表
- 19. 如何将逗号分隔列表转换为选择框
- 20. 将逗号分隔的字符串转换为列表
- 21. 将逗号分隔列表转换为数组 - 爆炸vs preg_split
- 22. 使用Javascript将逗号分隔列表转换为JSON
- 23. 逗号分隔列表
- 24. 逗号分隔的列表
- 25. @synthesize逗号分隔列表
- 26. 使用linq将列表中的逗号分隔列表转换为列
- 27. 将表格列中的逗号分隔值分隔成使用mysql的行吗?
- 28. 转换列表为双引号逗号分隔字符串
- 29. 我如何转换逗号分隔字符串转换成列表<int>
- 30. 如何在逗号分隔列表中转换列数据
这里使用的下划线是什么?因为pairs(table)返回一个key和value,所以_指示对象(tt)做 s = s ..“,”.. escapeCSV(p) end – clua7
你不关心钥匙。 – Alan
请将答案本身的完整答案,而不是只链接到外部资源。 –