Last active
April 18, 2024 01:31
-
-
Save silgon/0ba43e00e0749cdf4f8d244e67cd9d6a to your computer and use it in GitHub Desktop.
How to Read and Write JSON files in julia
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import JSON | |
################### | |
### Write data #### | |
################### | |
# dictionary to write | |
dict1 = Dict("param1" => 1, "param2" => 2, | |
"dict" => Dict("d1"=>1.,"d2"=>1.,"d3"=>1.)) | |
# pass data as a json string (how it shall be displayed in a file) | |
stringdata = JSON.json(dict1) | |
# write the file with the stringdata variable information | |
open("write_read.json", "w") do f | |
write(f, stringdata) | |
end | |
################### | |
### Read data ##### | |
################### | |
# create variable to write the information | |
dict2 = Dict() | |
open("write_read.json", "r") do f | |
global dict2 | |
dicttxt = readall(f) # file information to string | |
dict2=JSON.parse(dicttxt) # parse and transform data | |
end | |
# print both dictionaries | |
println(dict1) | |
println(dict2) |
I think the readall(f)
call was supposed to be JSON.readall
# create variable to write the information
dict2 = Dict()
open("write_read.json", "r") do f
global dict2
dicttxt = read(f,String) # file information to string
dict2=JSON.parse(dicttxt) # parse and transform data
end
and
# create variable to write the information
dict2 = Dict()
open("write_read.json", "r") do f
global dict2
dict2=JSON.parse(f) # parse and transform data
end
worked!
It seems the name of text-read function has been changed at least twice: readall
-> readstring
-> read
JuliaLang/julia#14660
JuliaLang/julia#22864
Julia v1.5 update: for reading data I use
stringdata=join(readlines("/path/data.json"))
dict=JSON.parse(stringdata)
Using Julia v1.5 and the Pipe module you can read the json file to a dict in one line:
dict = @pipe "write_read.json" |> open |> read |> String |> JSON.parse
Using Julia v1.6, I was able to read the json
file in a very simple way.
dict = "write_read.json" |> open |> JSON.parse
OR
dict = JSON.parse(open("write_read.json"))
I think JSON.parsefile("filename.json")
is the right way to do this now?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How to get the value, because is showing in my console: Dict{Any,Any}()