从文件中读取字符串并将其转换为数组(Julia语言)

4
我正在阅读一个结构如下的文件:

["EXPRESS", "VOLVO", "TESLA", "BYB"]

当我在Julia中读取它时,我会得到一个像这样的字符串:
"[\"FARMACIA\", \"SUPERMERCADO\"]"

我想知道是否有一种方法可以将该字符串映射到一个字符串数组中,如下所示:

["FARMACIA", "SUPERMERCADO"]

请帮忙,谢谢你

2个回答

2
使用JSON解析器进行操作。
julia> mystr = """["EXPRESS", "VOLVO", "TESLA", "BYB"]"""
"[\"EXPRESS\", \"VOLVO\", \"TESLA\", \"BYB\"]"

julia> using JSON3

julia> JSON3.read(mystr)
4-element JSON3.Array{String,Base.CodeUnits{UInt8,String},Array{UInt64,1}}:
 "EXPRESS"
 "VOLVO"
 "TESLA"
 "BYB"

请注意,Julia避免不必要的数据材料化和内存复制,因此出现了“奇怪”的类型。但您总是可以在结果上运行collect
julia> collect(JSON3.read(mystr))
4-element Array{String,1}:
 "EXPRESS"
 "VOLVO"
 "TESLA"
 "BYB"

0

既然你了解结果的结构,就可以直接解析数据。

julia> mystr = """["EXPRESS", "VOLVO", "TESLA", "BYB"]"""
"[\"EXPRESS\", \"VOLVO\", \"TESLA\", \"BYB\"]"

julia> using JSON3

julia> JSON3.read(mystr, Vector{String})
4-element Vector{String}:
 "EXPRESS"
 "VOLVO"
 "TESLA"
 "BYB"

这样做更有效率,因为在这种情况下,JSON3 不会生成中间对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接