当我从 txt 中读取时,Dict 的键没有得到认可 - Julia
Keys of Dict are not enconded when I read from txt - Julia
我读了一个.txt文件(它包含一个Dict)但是Dict的键有错误。在原始文件中名称是正确的(例如:文件有 "P. Cárdenas" 但我有 "P. C\xe1rdenas")
>> f = open("dict.txt", "r")
>> dict_maestro = JSON.parse(f)
>>Dict{String,Any} with 5 entries:
"P. C\xe1rdenas" => Dict{String,Any}("dist_tm"=>Any[Any[0.248, 0.074, 0.…
"S. L\xf3pez" => Dict{String,Any}("dist_tm"=>Any[Any[0.096, 0.082, 0.…
"S. Cabrera" => Dict{String,Any}("dist_tm"=>Any[Any[0.341, 0.094, 0.…
"C. Mu\xf1oz" => Dict{String,Any}("dist_tm"=>Any[Any[0.246, 0.073, 0.…
"R. Bugue\xf1o" => Dict{String,Any}("dist_tm"=>Any[Any[0.261, 0.068, 0.…
我怎样才能得到正确的名字?
如果我没记错的话,您正在以字节而不是 UTF 字符串的形式读取文件。根据链接重复问题的答案,您应该首先将文件的内容转换为适当编码的字符串,然后将其解析为 JSON。这将大致按照以下方式进行:
s = open("dict.txt", "r") do f
utf16(readbytes(f))
end
dict_maestro = JSON.parse(s)
如果这是您文件中的编码,您可以使用 utf8
而不是 utf16
。
我读了一个.txt文件(它包含一个Dict)但是Dict的键有错误。在原始文件中名称是正确的(例如:文件有 "P. Cárdenas" 但我有 "P. C\xe1rdenas")
>> f = open("dict.txt", "r")
>> dict_maestro = JSON.parse(f)
>>Dict{String,Any} with 5 entries:
"P. C\xe1rdenas" => Dict{String,Any}("dist_tm"=>Any[Any[0.248, 0.074, 0.…
"S. L\xf3pez" => Dict{String,Any}("dist_tm"=>Any[Any[0.096, 0.082, 0.…
"S. Cabrera" => Dict{String,Any}("dist_tm"=>Any[Any[0.341, 0.094, 0.…
"C. Mu\xf1oz" => Dict{String,Any}("dist_tm"=>Any[Any[0.246, 0.073, 0.…
"R. Bugue\xf1o" => Dict{String,Any}("dist_tm"=>Any[Any[0.261, 0.068, 0.…
我怎样才能得到正确的名字?
如果我没记错的话,您正在以字节而不是 UTF 字符串的形式读取文件。根据链接重复问题的答案,您应该首先将文件的内容转换为适当编码的字符串,然后将其解析为 JSON。这将大致按照以下方式进行:
s = open("dict.txt", "r") do f
utf16(readbytes(f))
end
dict_maestro = JSON.parse(s)
如果这是您文件中的编码,您可以使用 utf8
而不是 utf16
。