【问题标题】:reading a csv into a hash将 csv 读入哈希
【发布时间】:2011-06-07 09:20:51
【问题描述】:

您好,我是一名 lua 初学者,正在尝试一次循环遍历 CSV 文件。我想将从 CSV 读取的每一行存储在哈希表中。实验代码的当前状态如下:-

本地 fp = 断言(io.open(“fields.csv”)) 本地行=fp:read() 本地标头=ParseCSVLine(line,",") -- for i,v in ipairs(headers) do print(i,v) end -- 这很好地打印出 CSV 标题 -- 现在从文件中读取下一行并存储在哈希中 本地行=fp:read() 本地 cols=ParseCSVLine(line,",") 本地 myfields={} 对于 i,v in ipairs(headers) 做 -- print(v,cols[i]) -- 很好地打印出内容 myfields[v]=cols[i] ------ 这就是事情变糟的地方 ----- 结尾 for i,v in ipairs(myfields) do print(i,v) end ------ 这什么也不打印!

ParseCSVLine 来自http://lua-users.org/wiki/LuaCsv。然而,问题是对 myfields[v] 的分配。查看各种文档,[] 中允许的语法相当奇怪,看起来 Lua 不允许在此处使用符号。如何在 myfields 中构建我的新表?

【问题讨论】:

  • 我不知道我有!我似乎记得我确实取消了问题下方的“星号”,因为这肯定不是我最喜欢的问题。当时你的回答很有帮助。谢谢。

标签: lua


【解决方案1】:

对表格的分配看起来不错。问题是在打印表格内容时:您使用了ipairs,而您应该使用了pairsipairs 用于遍历数组(键为序号 1、2、3、...的表),pairs 可用于任何表以检索键/值对,例如这个:

for k,v in pairs(myfields) do print(k,v) end

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2020-07-10
    • 1970-01-01
    • 2015-09-19
    • 2015-07-21
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多