Commit 09f3471d674f668550f9ffd03247414e7a5f0154

Authored by quillotm
1 parent 3e2abe83e3
Exists in master

Now, you can add elements to and existing dictionary by giving an input dictionary (content).

Showing 1 changed file with 10 additions and 1 deletions Side-by-side Diff

... ... @@ -14,6 +14,7 @@
14 14  
15 15 # Data variables
16 16 content_data = json.loads(content)
  17 +
17 18 data = {}
18 19  
19 20 # Load file if necessary
20 21  
21 22  
... ... @@ -24,10 +25,18 @@
24 25 # Walk through the json path
25 26 pointer = data
26 27 for i, way in enumerate(jsonpath):
  28 + # End of the json path
27 29 if i == len(jsonpath) - 1:
  30 +
28 31 if not force and way in pointer:
29 32 raise Exception(f"In your json file, {way} already exists in the path {jsonpath}. Add --force option.")
30   - pointer[way] = content_data
  33 + else:
  34 + # If dictionary in both cases, copy from content to pointer
  35 + if type(pointer[way]) is dict and type(content_data) is dict:
  36 + for key in content_data:
  37 + pointer[way][key] = content_data[key]
  38 + else:
  39 + pointer[way] = content_data
31 40 else:
32 41 if way not in pointer:
33 42 pointer[way] = {}