当前位置: 首页 > 面试题库 >

在Python中从JSON构建表

淳于烈
2023-03-14
问题内容

我正在尝试使用Python将JSON文本转换为标准数据表,但是对此我缺乏经验,当我在线搜索解决方案时,发现我很难实现任何解决方案。

我正在尝试使用,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与表格互动时几乎总是使用。它可以解析字典

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

或使用 pandas.read_json



 类似资料:
  • 我想知道使用Spring从json在Neo4j中创建图形的最佳方法是什么。想象一下,我有一个简单的NodeEntity人: 我想通过json对象建立人与人之间的友谊图,如: 我可以使用SpringDataRESTAPI将json直接反序列化到节点实体和关系吗?

  • 我正在处理非常长的嵌套JSON文件中的数据。问题是,这些文件的结构并不总是相同的,因为有些文件缺少其他文件的列。我想从一个包含所有列的空JSON文件创建一个定制模式。如果我稍后将JSON文件读入这个预定义的模式,不存在的列将被空值填充(至少计划是这样的)。到目前为止我所做的: 将测试 JSON(不包含预期的所有列)加载到数据帧中 将其架构写入 JSON 文件 在文本编辑器中打开此 JSON 文件并

  • 问题内容: 我想我需要反射包才能做到这一点。说我有一个像这样的结构: 说我想生成ResolutionValue结构的JSON表示…是否有某种方法可以创建不实例化的JSON表示? 问题答案: 即使使用反射,也需要使用实际值来获取类型。因此,我建议您只使用类型的零值。

  • 问题内容: 我有正在使用nodeJS读取的csv文件。我在阅读之前将每个文件转换为文本。 文件中的每一行都有以’=’分隔的数据。 每行看起来像 “ =“之前的第一部分代表我应用程序中json对象的索引。我的目的是解析此数据并为其构建json表示,以便上面的行成为 使用javascript / node js; 如何将应该表示嵌套JSON键序列的字符串转换为上述json对象? 问题答案: 您可以分割

  • 我编写的应用程序需要json格式的数据,但获取的数据没有标题 型号: 存储库: 服务 控制器: 在输出上,我得到以下数据: 但我需要这种格式的数据: 有人能解释一下怎么做吗?我认为问题是因为我返回了字符串,但如何用本机查询返回Json对象呢?

  • 问题内容: 我从服务器端ajax响应(Json)中获取信息,并试图动态创建表行并将其附加到id =的现有表中。 我试图重复实现该解决方案,但失败了。 我的回答如下: 需求结果是这样的: 我想做一些不解析Json的事情,所以我尝试做以下事情,这当然是一场灾难: 从我的解决方案中,我在所有单元格中仅得到数字为6的一行。我究竟做错了什么? 问题答案: 使用.append而不是.html