0

I'm a newbee in Python so excuse if my question looks, dummy.

I have a json file which look like this

[{'_id': '1', 'date': '2019-09-07', 'name': 'abi', 'value': 0, 'unit': '°C'},

{'_id': '2', 'date': '2019-09-08', 'name': 'allo', 'value': 3, 'unit': '°F'},

{'_id': '3', 'date': '2019-09-09', 'name': 'ali', 'value': 0, 'unit': '°C'}]

and I want to read this json file in order to convert it into a dictionary of array which looks like

[{'_id': [ '1', '2','3']},

{'date': [ '2019-09-07', '2019-09-08','2019-09-09']},

{'name': [ 'abi', 'allo','ali']},

{'value': [ '0', '3','0']},

{'unit': [ '°C', '°F','°C']},]

Thank you in advance

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Reims
  • 477
  • 1
  • 4
  • 12
  • 1
    Possible duplicate of [Convert string to JSON using Python](https://stackoverflow.com/questions/4528099/convert-string-to-json-using-python) – Vaibhav Vishal Sep 10 '19 at 10:34

1 Answers1

0

Use collections.defaultdict

Ex:

from collections import defaultdict

data = [{'_id': '1', 'date': '2019-09-07', 'name': 'abi', 'value': 0, 'unit': '°C'},
{'_id': '2', 'date': '2019-09-08', 'name': 'allo', 'value': 3, 'unit': '°F'},
{'_id': '3', 'date': '2019-09-09', 'name': 'ali', 'value': 0, 'unit': '°C'}]

result = defaultdict(list)
for i in data:
    for k, v in i.items():
        result[k].append(v)
print(result)

or .setdefault

Ex:

result = {}
for i in data:
    for k, v in i.items():
        result.setdefault(k, []).append(v)
print(result)

Output:

{'_id': ['1', '2', '3'],
 'date': ['2019-09-07', '2019-09-08', '2019-09-09'],
 'name': ['abi', 'allo', 'ali'],
 'unit': ['°C', '°F', '°C'],
 'value': [0, 3, 0]}
Rakesh
  • 81,458
  • 17
  • 76
  • 113