Home > Blockchain >  how to save multi level dict per line?
how to save multi level dict per line?

Time:01-26

i have this dict

dd = {
    "A": {"a": {"1": "b", "2": "f"}, "z": ["z", "q"]},
    "B": {"b": {"1": "c", "2": "g"}, "z": ["x", "p"]},
    "C": {"c": {"1": "d", "2": "h"}, "z": ["y", "o"]},
     }

and i wanna have it formated in one line like this in a file i used

with open('file.json', 'w') as file: json.dump(dd, file, indent=1)
# result
{
 "A": {
  "a": {
   "1": "b",
   "2": "f"
  },
  "z": [
   "z",
   "q"
  ]
 },
 "B": {
  "b": {
   "1": "c",
   "2": "g"
  },
  "z": [
   "x",
   "p"
  ]
 },
 "C": {
  "c": {
   "1": "d",
   "2": "h"
  },
  "z": [
   "y",
   "o"
  ]
 }
}

i also tried but gave me string and list wrong

with open('file.json', 'w') as file: file.write('{\n'  ',\n'.join(json.dumps(f"{i}: {dd[i]}") for i in dd)  '\n}')
# result
{
"A: {'a': {'1': 'b', '2': 'f'}, 'z': ['z', 'q']}",
"B: {'b': {'1': 'c', '2': 'g'}, 'z': ['x', 'p']}",
"C: {'c': {'1': 'd', '2': 'h'}, 'z': ['y', 'o']}"
}

the result i wanna is

    {
    "A": {"a": {"1": "b", "2": "f"}, "z": ["z", "q"]},
    "B": {"b": {"1": "c", "2": "g"}, "z": ["x", "p"]},
    "C": {"c": {"1": "d", "2": "h"}, "z": ["y", "o"]},
     }

how do i print the json content one line per dict while all inside is one line too?

i plan to read it using json.load

CodePudding user response:

Stdlib enter image description here

  • Related