在Python中从JSON构建表 [英] Build table from JSON in Python
问题描述
我正在尝试使用Python将JSON文本转换为标准数据表,但是对此我缺乏经验,当我在线搜索解决方案时,发现我很难实现任何解决方案.
I am trying to transform a JSON text into a standard data table using Python, however I have little experience with this and as I search for solutions online I find I am having difficulty implementing any.
我正尝试使用ast.literal_eval
,但一直出现我无法解决的错误.
I was trying to use ast.literal_eval
but kept getting an error that I have been unable to solve.
提高ValueError('格式错误的节点或字符串:'+ repr(node))
raise ValueError('malformed node or string: ' + repr(node))
JSON:
{
"duration": 202.0,
"session_info": {
"activation_uuid": "ab90d941-df9d-42c5-af81-069eb4f71515",
"launch_uuid": "11101c41-2d79-42cc-bf6d-37be46802fc8"
},
"timestamp": "2019-01-18T11:11:26.135Z",
"source_page_view_reference": {
"page_uuid": "1bede017-7b77-461d-82ef-a6bbcfdae4d7",
"page_id": "/group/More",
"page_name": "More",
"view_uuid": "9580f3c5-1116-432a-83bc-9d0b5337f661",
"page_type": "Native"
},
"analytics_sdk": {
"component_id": "datasdk",
"component_version": "1.0.52"
},
"treatment_id": "mockTreat",
"client_event_id": "2b3cd878-6932-410b-b1ad-bc40ae888fdc",
"campaign_id": "mockCamp"
}
所需的表格格式(已调整值以适合显示目的)
Desired Table Format (values trimmed to fit for display purposes):
Duration | session_info.activation_uuid | session_info.launch_uuid | timestamp | etc
202.0 | ab90d941-df9d-42c5-af81-069 | 11101c41-2d79-42cc-bf6d- | 2019-01-18 | etc
任何直接帮助,或只是好的资源来学习这一点,将不胜感激.我很难找到可以直接与我要根据一系列相似的JSON创建表的内容进行对话的项目.
Any direct help, or simply good resources to learn up on this would be greatly appreciated. I've had trouble finding items that speak directly to what I am looking to do to create a table from a series of similar JSONs.
推荐答案
pandas
.它可以解析字典
In [0]: import pandas
In [1]: from pandas.io.json import json_normalize
In [2]: d = {'duration': 202.0,
...: 'session_info':
...: {'activation_uuid': 'ab90d941-df9d-42c5-af81-069eb4f71515',
...: 'launch_uuid': '11101c41-2d79-42cc-bf6d-37be46802fc8'},
...: 'timestamp': '2019-01-18T11:11:26.135Z',
...: 'source_page_view_reference':
...: {'page_uuid': '1bede017-7b77-461d-82ef-a6bbcfdae4d7',
...: 'page_id': '/group/More',
...: 'page_name': 'More',
...: 'view_uuid': '9580f3c5-1116-432a-83bc-9d0b5337f661',
...: 'page_type': 'Native'},
...: 'analytics_sdk':
...: {'component_id': 'datasdk',
...: 'component_version': '1.0.52'},
...: 'treatment_id': 'mockTreat',
...: 'client_event_id': '2b3cd878-6932-410b-b1ad-bc40ae888fdc',
...: 'campaign_id': 'mockCamp'}
In [4]: json_normalize(d)
Out[4]:
analytics_sdk.component_id analytics_sdk.component_version campaign_id client_event_id duration ... source_page_view_reference.page_type source_page_view_reference.page_uuid source_page_view_reference.view_uuid timestamp treatment_id
0 datasdk 1.0.52 mockCamp 2b3cd878-6932-410b-b1ad-bc40ae888fdc 202.0 ... Native 1bede017-7b77-461d-82ef-a6bbcfdae4d7 9580f3c5-1116-432a-83bc-9d0b5337f661 2019-01-18T11:11:26.135Z mockTreat
[1 rows x 14 columns]
要将JSON字符串加载到字典中,请使用json.loads
To load JSON string into a dictionary, use json.loads
或使用 pandas.read_json
Or use pandas.read_json
这篇关于在Python中从JSON构建表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!