Python Forum
Convert Json to table formathttps://python-forum.io/thread-38313.html
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Convert Json to table formathttps://python-forum.io/thread-38313.html
#1
I have a json as shown below and I need to convert this to table format. (all post about this did not help me and I think is because the json structure)
I tried using pandas but it is not working as I expected.

I need something like this
id, t_id, value, date_timestamp, type
179328741654819, 963852456741, 499.66, 2020-09-22T15:18:17, in


This is my code: (I am using Jupyter notebook)

import json import pandas as pd from IPython.display import display # load json file pd_object = pd.read_json('file.json',typ='series') df = pd.DataFrame(pd_object) display(df)
But it show only one column
result
Output:
0 {'id': '179328741654819', 't_values'... 200 rows × 1 columns
The json structure is:
Output:
[ { "id": "179328741654819", "t_values": [ { "t_id": "963852456741", "value": "499.66", "date_timestamp": "2020-09-22T15:18:17", "type": "in" }, { "t_id": "852951753456", "value": "1386.78", "date_timestamp": "2020-10-31T14:46:44", "type": "in" } ] }, { "id": "823971648264792", "t_values": [ { "t_id": "753958561456", "value": "672.06", "date_timestamp": "2020-03-16T22:41:16", "type": "in" }, { "t_id": "321147951753", "value": "773.88", "date_timestamp": "2020-05-08T18:29:31", "type": "out" }, { "t_id": "258951753852", "value": "733.13", "date_timestamp": null, "type": "in" } ] } ]
Reply
#2
Use json_normalize for this.
Example.
import pandas as pd lst = [	{	"id": "179328741654819",	"t_values": [	{	"t_id": "963852456741",	"value": "499.66",	"date_timestamp": "2020-09-22T15:18:17",	"type": "in"	},	{	"t_id": "852951753456",	"value": "1386.78",	"date_timestamp": "2020-10-31T14:46:44",	"type": "in"	}	]	},	{	"id": "823971648264792",	"t_values": [	{	"t_id": "753958561456",	"value": "672.06",	"date_timestamp": "2020-03-16T22:41:16",	"type": "in"	},	{	"t_id": "321147951753",	"value": "773.88",	"date_timestamp": "2020-05-08T18:29:31",	"type": "out"	},	{	"t_id": "258951753852",	"value": "733.13",	"date_timestamp": 'null',	"type": "in"	}	]	} ]
>>> df = pd.json_normalize(lst, meta=['id'], record_path='t_values') >>> df t_id value date_timestamp type id 0 963852456741 499.66 2020-09-22T15:18:17 in 179328741654819 1 852951753456 1386.78 2020-10-31T14:46:44 in 179328741654819 2 753958561456 672.06 2020-03-16T22:41:16 in 823971648264792 3 321147951753 773.88 2020-05-08T18:29:31 out 823971648264792 4 258951753852 733.13 null in 823971648264792 >>> df = df.reindex(['id', 't_id', 'value', 'date_timestamp', 'type'], axis=1) >>> df id t_id value date_timestamp type 0 179328741654819 963852456741 499.66 2020-09-22T15:18:17 in 1 179328741654819 852951753456 1386.78 2020-10-31T14:46:44 in 2 823971648264792 753958561456 672.06 2020-03-16T22:41:16 in 3 823971648264792 321147951753 773.88 2020-05-08T18:29:31 out 4 823971648264792 258951753852 733.13 null in
python_student likes this post
Reply
#3
(Sep-28-2022, 08:19 AM)snippsat Wrote: Use json_normalize for this.
Example.
import pandas as pd lst = [	{	"id": "179328741654819",	"t_values": [	{	"t_id": "963852456741",	"value": "499.66",	"date_timestamp": "2020-09-22T15:18:17",	"type": "in"	},	{	"t_id": "852951753456",	"value": "1386.78",	"date_timestamp": "2020-10-31T14:46:44",	"type": "in"	}	]	},	{	"id": "823971648264792",	"t_values": [	{	"t_id": "753958561456",	"value": "672.06",	"date_timestamp": "2020-03-16T22:41:16",	"type": "in"	},	{	"t_id": "321147951753",	"value": "773.88",	"date_timestamp": "2020-05-08T18:29:31",	"type": "out"	},	{	"t_id": "258951753852",	"value": "733.13",	"date_timestamp": 'null',	"type": "in"	}	]	} ]
>>> df = pd.json_normalize(lst, meta=['id'], record_path='t_values') >>> df t_id value date_timestamp type id 0 963852456741 499.66 2020-09-22T15:18:17 in 179328741654819 1 852951753456 1386.78 2020-10-31T14:46:44 in 179328741654819 2 753958561456 672.06 2020-03-16T22:41:16 in 823971648264792 3 321147951753 773.88 2020-05-08T18:29:31 out 823971648264792 4 258951753852 733.13 null in 823971648264792 >>> df = df.reindex(['id', 't_id', 'value', 'date_timestamp', 'type'], axis=1) >>> df id t_id value date_timestamp type 0 179328741654819 963852456741 499.66 2020-09-22T15:18:17 in 1 179328741654819 852951753456 1386.78 2020-10-31T14:46:44 in 2 823971648264792 753958561456 672.06 2020-03-16T22:41:16 in 3 823971648264792 321147951753 773.88 2020-05-08T18:29:31 out 4 823971648264792 258951753852 733.13 null in



Thank you so much. This was I needed
Reply
#4
python comes with a built-in tool, json.tool
to use: python -m json.tool jsonfilename > textfilename
buran likes this post
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Convert JSON to CSV Linuxdesire 6 7,805 Oct-15-2025, 12:05 AM
Last Post: Pedroski55
  Python Thread Detection HansieB 2 1,295 Dec-10-2024, 02:56 PM
Last Post: HansieB
  drawing a table with the status of tasks in each thread pyfoo 3 2,032 Mar-01-2024, 09:29 AM
Last Post: nerdyaks
  Going through HTML table with selenium emont 3 4,079 Sep-30-2023, 02:13 AM
Last Post: emont
Thumbs Up Convert word into pdf and copy table to outlook body in a prescribed format email2kmahe 1 2,230 Sep-22-2023, 02:33 PM
Last Post: carecavoador
  Python Script to convert Json to CSV file chvsnarayana 8 6,300 Apr-26-2023, 10:31 PM
Last Post: DeaD_EyE
  write json into a table herobpv 4 3,474 Jan-22-2023, 04:36 AM
Last Post: herobpv
  Tkinterweb (Browser Module) Appending/Adding Additional HTML to a HTML Table Row AaronCatolico1 0 2,882 Dec-25-2022, 06:28 PM
Last Post: AaronCatolico1
  Convert .xlsx to Format as Table bnadir55 0 1,694 Aug-11-2022, 06:39 AM
Last Post: bnadir55
  Python Split json into separate json based on node value CzarR 1 11,550 Jul-08-2022, 07:55 PM
Last Post: Larz60+

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.