Given an array of JSON objects as:
arr=[{"id": "abc", "value": "123"}, {"id": "xyz", "value": "456"}]
I would like to output a single JSON object like:
new_arr={"abc":123,"xyz":456}
Currently I can extract the elements like arr[0]['id']
but I am wondering what’s the one-liner or better way to form the output.
4
Answers
A one-liner to extract the ids and values would be like this:
as the arr object contains the value as a
str
you need to convert it to anint()
. The rest of the one line similar to a list comprehension with dict as the base element to add to, thereby being a dict comprehension. Though this assumes that all dicts have a id and value combination (which is unknown from your data and am assuming that they always have an id and value)One alternative, showing the versatility of
itemgetter
:Output
One line solution can be this:
Or you can use
itemgetter
opertaror:Minimum code I think
result: