汤姆尔
汤姆。jl是一个Julia标准库,用于解析和编写https://toml.io/en/[TOML v1.0]文件。
解析TOML数据
julia> using TOML
julia> data = """
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
""";
julia> TOML.parse(data)
Dict{String, Any} with 1 entry:
"database" => Dict{String, Any}("server"=>"192.168.1.1", "ports"=>[8001, 8001…
要解析文件,请使用 汤姆。[医解析器]. 如果文件有语法错误,则引发异常:
julia> using TOML
julia> TOML.parse("""
value = 0.0.0
""")
ERROR: TOML Parser error:
none:1:16 error: failed to parse value
value = 0.0.0
^
[...]
还有其他版本的解析函数(汤姆。[医胰脏]和 汤姆。[医胰蛋白酶]),而不是在解析器错误上抛出异常返回一个 汤姆。解析器,解析器与信息:
julia> using TOML
julia> err = TOML.tryparse("""
value = 0.0.0
""");
julia> err.type
ErrGenericValueError::ErrorType = 14
julia> err.line
1
julia> err.column
16
将数据导出到TOML文件
该 汤姆。印刷业函数用于将数据打印(或序列化)为TOML格式。
julia> using TOML
julia> data = Dict(
"names" => ["Julia", "Julio"],
"age" => [10, 20],
);
julia> TOML.print(data)
names = ["Julia", "Julio"]
age = [10, 20]
julia> fname = tempname();
julia> open(fname, "w") do io
TOML.print(io, data)
end
julia> TOML.parsefile(fname)
Dict{String, Any} with 2 entries:
"names" => ["Julia", "Julio"]
"age" => [10, 20]
键可以根据一些值进行排序
julia> using TOML
julia> TOML.print(Dict(
"abc" => 1,
"ab" => 2,
"abcd" => 3,
); sorted=true, by=length)
ab = 2
abc = 1
abcd = 3
对于自定义结构体,传递一个将结构体转换为受支持类型的函数
julia> using TOML
julia> struct MyStruct
a::Int
b::String
end
julia> TOML.print(Dict("foo" => MyStruct(5, "bar"))) do x
x isa MyStruct && return [x.a, x.b]
error("unhandled type $(typeof(x))")
end
foo = [5, "bar"]
参考资料
# *`汤姆。[医]胰蛋白酶`*-函数
tryparsefile(f::AbstractString)
tryparsefile(p::Parser, f::AbstractString)
解析文件 f 并返回结果表(字典)。 返回a xref:stdlib/TOML.adoc#TOML.ParserError[解析器,解析器 失败时。
请参阅 汤姆。parsefile的.
# *`汤姆。印刷业`*-函数
print([to_toml::Function], io::IO [=stdout], data::AbstractDict; sorted=false, by=identity, inline_tables::IdSet{<:AbstractDict})
写 数据资料 作为流的TOML语法 伊俄. 如果关键字参数 已分类 被设置为 真的,根据关键字参数给出的函数对表进行排序 由. 如果关键字参数 内嵌-内嵌 被给出,它应该是一组应该"内联"打印的表格。
支持以下数据类型: 摘要;摘要, [医]文摘, 抽象字符串, 整数, [医]抽象浮, 布尔, 日期。日期时间, 日期。时间, 日期。日期. 请注意,整数和浮点数需要可转换为 漂浮64 和 Int64 分别。 对于其他数据类型,传递函数 to_托姆尔 它接受数据类型并返回支持类型的值。