在 Julia 中保存数据

问题描述

是否有一种标准方法可以轻松地在 Julia 中保存任何类型的数据。这次我有一个包含两个数组的元组,我想稍后再次使用。像这样的东西。

a = [1,2,34]
b = [1,3,4,5]

save((a,b),"ab")
a,b = load("ab")

解决方法

您可以使用 JLD2.jl 来保存和加载任意 Julia 对象。与 Serialization 标准库相比,这更适用于跨不同 Julia 版本的长期存储。

function RandomScreen() {
  
  function handleChange(event) {
   ChangeSomeOtherState(event.target.value)
}

  return (
    <select onChange={() => handleChange()}>
            {StateWhichIsArray.map(String => {
                return (
                <option value={String} key={String} >{String}</option>
                )
            })}
        </select>
 )
}
using JLD2

x = (1,"a")
save_object("mytuple.jld2",x)

有关其他功能,请查看 docs

,

有很多场景取决于你想存储数据多长时间

  1. 序列化(这对于短时间来说是完美的,对于包更新其内部数据结构的较长时间,您可能会在读取文件时遇到问题)
julia> using Serialization

julia> serialize("file.dat",a)
24

julia> deserialize("file.dat")
3-element Vector{Int64}:
  1
  2
 34
  1. 分隔文件(请注意,可能需要对输出进行额外处理)
julia> using DelimitedFiles

julia> writedlm("file.csv",a)

julia> readdlm("file.csv",'\t',Int)
3×1 Matrix{Int64}:
  1
  2
 34
  1. JSON(适合长期使用)
julia> using JSON3

julia> JSON3.write("file.json",a)
"file.json"

julia> open("file.json") do f; JSON3.read(f,Vector{Int}); end
3-element Vector{Int64}:
  1
  2
 34

其他值得一提的库(取决于数据格式)包括用于保存数据帧的 CSV.jl 和用于二进制 JSON 文件的 BSON.jl