Shameless selfplug (using GitHub - thofma/Tryparse.jl: Parsing basic types in julia):
julia> using Tryparse
julia> Tryparse.parse(Vector{Int}, "[3, 2, 1]")
3-element Vector{Int64}:
3
2
1
julia> Tryparse.parse(Vector{Vector{Int}}, "[[1, 2], [3, 4, 1]]")
2-element Vector{Vector{Int64}}:
[1, 2]
[3, 4, 1]
julia> Tryparse.parse(Tuple{Vector{Int}, Vector{Int}}, "([3, 2, 1], [3, 2, 1434])")
([3, 2, 1], [3, 2, 1434])
So you can just keep your original format.
Edit: This is free of eval.