Broadcasting seems slightly more efficient than [d["a"] for d in x1] from my testing:
[d["a"] for d in x1]
getindex.(x1, "a")