在 Julia 中保存和检索字典的正确方法是啥?
Posted
技术标签:
【中文标题】在 Julia 中保存和检索字典的正确方法是啥?【英文标题】:What is the correct way to save and retrieve dictionaries in Julia?在 Julia 中保存和检索字典的正确方法是什么? 【发布时间】:2015-06-23 21:04:58 【问题描述】:我已经看到 Julia 充分解释了“MAT”文件,其中包含可以毫无问题地读取为字典的结构。现在我已经创建了自己的字典,其结构如下
(String, String)=> [ Int, Int, Int]
在每个条目上。我可以用writedlm
保存它,它会产生一个非常有序的
表格文本文件,由制表符分隔 (\t
),但是如果不进行大量解析,我将无法检索它。如果我使用readdlm
,我会得到一个Any
类型的数组,每行的结构都非常不舒服
"(\"Bla bla\", \"tururu\")" "[a, b, c]"
即两列String
s,其中包含'"'
和'['
等符号。
【问题讨论】:
如果您展示用于生成这些结果的实际代码,将会很有帮助。 您绝对可以保存回 MAT 文件,尽管建议使用 HDF5 包和 JLD 子模块。 JLD 被编写用于存储任意 Julia 数据类型(甚至是用户定义的)。 另见How to save an NxNxN array (or Matrix) into a file in Julia (or Python)? 【参考方案1】:您可以使用 HDF5
包中包含的 JLD
(Julia 数据)子模块:
Pkg.add("HDF5")
using HDF5, JLD
d = Dict(
("a", "b") => [1, 2, 3],
("c", "d") => [4, 5, 6],
("e", "f") => [7, 8, 9]
)
save("data.jld", "data", d)
load("data.jld")["data"]
JLD 模块的优点是它保留了每个变量的准确类型信息。
【讨论】:
【参考方案2】:SalchiPapa 建议的使用 JLD 的解决方案由于某种原因不再有效。这是他们使用 JLD2 的示例的更新版本(只是更改了导入和文件扩展名):
using JLD2, FileIO
d = Dict(
("a", "b") => [1, 2, 3],
("c", "d") => [4, 5, 6],
("e", "f") => [7, 8, 9]
)
save("data.jld2", "data", d)
load("data.jld2")["data"]
【讨论】:
以上是关于在 Julia 中保存和检索字典的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以像在 Matlab 中一样在 Julia 中嵌套 tic() 和 toc() ?如果不是,那么解决方法是啥?
在 Julia 中定义一个非常稀疏的网络矩阵的最有效方法是啥?
通过 Swift 在 iPhone (iOS) 开发中存储/检索用户数据(读/写文件)的正确方法是啥?