Answering to the specific question asked in the title: "Merging JSON" which would translate to combining values of two dict objects in Python can be don with unpacking using the `**` operator.
In the following lines you can find a simple example in which you can observe behavior and use as needed in your problem.
```
d1 = {"a": 1, "b": 2}
d2 = {"b": 3, "c": 4}
d3 = {**d1, **d2}
d3 # Output
{'a': 1, 'b': 3, 'c': 4}
d4 = {**d2, **d1}
d4 # Output
{'b': 2, 'c': 4, 'a': 1}
```
Just out of curiosity I've taken a look at what happens under the hood, and I've used [dtruss/strace][1] on each test.
C++
./a.out < in
Saw 6512403 lines in 8 seconds. Crunch speed: 814050
syscalls `sudo dtruss -c ./a.out < in`
CALL COUNT
__mac_syscall 1
<snip>
open 6
pread 8
mprotect 17
mmap 22
stat64 30
read_nocancel 25958
Python
./a.py < in
Read 6512402 lines in 1 seconds. LPS: 6512402
syscalls `sudo dtruss -c ./a.py < in`
CALL COUNT
__mac_syscall 1
<snip>
open 5
pread 8
mprotect 17
mmap 21
stat64 29
[1]: http://en.wikipedia.org/wiki/Strace