# How to convert a Dict to a Vector of NamedTuples?

**URL:** https://discourse.julialang.org/t/how-to-convert-a-dict-to-a-vector-of-namedtuples/32005
**Category:** New to Julia
**Created:** [December 8, 2019, 12:45pm UTC](https://discourse.julialang.org/t/how-to-convert-a-dict-to-a-vector-of-namedtuples/32005 "2019-12-08T12:45:04Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Elmer\_Cusipuma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elmer_cusipuma/32/11958_2.png) [@Elmer\_Cusipuma](https://discourse.julialang.org/u/Elmer_Cusipuma)
#### Post date: [December 8, 2019, 12:45pm UTC](https://discourse.julialang.org/t/how-to-convert-a-dict-to-a-vector-of-namedtuples/32005/1 "2019-12-08T12:45:04Z")

</div>

I am trying to do the following

```julia
julia> dict = Dict(1 => Dict("a"=> (n=1.9,t=2), "b" => (n=3.1,t=5) ),
                   2 => Dict("a"=> (n=6.6,t=5), "b" => (n=3.9,t=6) ));

julia> tbl = [(jt=k,case=cs,v[cs]...) for (k, v) in dict, cs in ("a","b") ]

```

I get

```julia
2×2 Array{NamedTuple{(:jt, :case, :n, :t),Tuple{Int64,String,Float64,Int64}},2}:
 (jt = 2, case = "a", n = 6.6, t = 5) (jt = 2, case = "b", n = 3.9, t = 6)
 (jt = 1, case = "a", n = 1.9, t = 2) (jt = 1, case = "b", n = 3.1, t = 5)

```

Desired output:

```julia
4-element Array{NamedTuple,1}:
 (jt = 2, case = "a", n = 6.6, t = 5)
 (jt = 2, case = "b", n = 3.9, t = 6)
 (jt = 1, case = "a", n = 1.9, t = 2)
 (jt = 1, case = "b", n = 3.1, t = 5)

```

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [December 8, 2019, 1:00pm UTC](https://discourse.julialang.org/t/how-to-convert-a-dict-to-a-vector-of-namedtuples/32005/2 "2019-12-08T13:00:53Z")

</div>

Swap a comma for an extra `for`:

```julia
julia> tbl = [(jt=k,case=cs,v[cs]...) for (k, v) in dict for cs in ("a","b") ]
4-element Array{NamedTuple{(:jt, :case, :n, :t),Tuple{Int64,String,Float64,Int64}},1}:
 (jt = 2, case = "a", n = 6.6, t = 5)
 (jt = 2, case = "b", n = 3.9, t = 6)
 (jt = 1, case = "a", n = 1.9, t = 2)
 (jt = 1, case = "b", n = 3.1, t = 5)

```
