Usually I’d suggest a vector of symbols, but since your regions contain characters like + and - probably a vector of strings is better in your case. Then the mines to ports map could be a dictionary, like so:
I teach an introductory course in energy system LP modeling. The first assignment is to build (or rather modify) a very simple model of a district heating system. The model was originally written in GAMS but I recently converted it to Julia/JuMP - you might find it useful to see how things can translate. Both versions (and the assignment itself) are available here:
It’s very hard to say without seeing the error in context, but key error means you’re trying to look up an element in the dictionary that doesn’t exist. Wild guess: are you doing something like links[x] where x is an integer?
julia> links["china"]
"shanghai"
julia> links[23]
ERROR: KeyError: key 23 not found