我正在尝试使用Python将JSON文本转换为标准数据表,但是对此我缺乏经验,当我在线搜索解决方案时,发现我很难实现任何解决方案。
我正在尝试使用,ast.literal_eval但一直收到我无法解决的错误。
ast.literal_eval
引发ValueError(’格式错误的节点或字符串:’+ 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" }
所需的表格格式(已调整值以适合显示目的):
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创建表的内容进行对话的项目。
pandas与表格互动时几乎总是使用。它可以解析字典
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
json.loads
或使用 pandas.read_json
pandas.read_json