【问题标题】:How to parse and get specific data from a huge json file to implement search in pythonpython中如何从庞大的json文件中解析获取特定数据实现搜索
【发布时间】:2022-11-21 10:21:39
【问题描述】:

我有一个包含大量信息的 json 文件,所以我试图在有位置的地方提取特定数据,我需要获取直接名称数据,还尝试在 python 中实现搜索。 我正在从文件 ex.json 上传部分示例 json 数据

`

{
  "storables": [
    {
      "columns": [
        {
          "position": 0,
          "header": {
            "id": "",
            "indexVersion": 35643,
            "generationNum": 35643,
            "name": "CAT",
            "author": "",
            "created": 1620247188226,
            "modified": 1668544812673,
            "modifiedBy": "",
            "owner": "",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": true,
          "dataType": "VARCHAR",
          "type": "ATTRIBUTE",
          "sageOutputColumnId": "",
          "defaultAggrType": "NONE",
          "ownerName": "",
          "ownerType": "WORKSHEET",
          "entityCategory": "DEFAULT",
          "spotiqPreference": "DEFAULT",
          "isAdditive": false,
          "indexType": "DEFAULT",
          "indexPriority": 1,
          "sources": [
            {
              "tableId": "",
              "tableName": "",
              "columnId": "",
              "columnName": "CATASTROPHE"
            }
          ],
          "synonyms": [],
          "injectedInlineValues": [],
          "precision": -1,
          "scale": 0,
          "isPrimaryKey": false,
          "isAttributionDimension": true,
          "derivationExpr": {
            "exprType": "LOGICAL_COLUMN_REFERENCE",
            "logicalColumn": {
              "header": {
                "id": "",
                "indexVersion": 35499,
                "generationNum": 35499,
                "name": "CATASTROPHE",
                "author": "",
                "created": 1630716505804,
                "modified": 1668211006637,
                "modifiedBy": "",
                "owner": "",
                "isDeleted": false,
                "isHidden": false,
                "schemaStripe": "",
                "databaseStripe": "",
                "tags": [],
                "isExternal": false,
                "isDeprecated": false
              }
            },
            "joinPaths": [
              {
                "joins": [
                  {
                    "sourceTable": "",
                    "destinationTable": "",
                    "content": {
                      "relationships": [
                        {
                          "sourceColumn": "",
                          "destinationColumn": ""
                        }
                      ],
                      "weight": 1
                    },
                    "joinType": "INNER",
                    "type": "USER_DEFINED",
                    "isOneToOneJoin": false,
                    "header": {
                      "id": "",
                      "indexVersion": 35499,
                      "generationNum": 35499,
                      "name": "",
                      "description": "",
                      "author": "",
                      "created": 1650658367043,
                      "modified": 1668211006686,
                      "modifiedBy": "",
                      "owner": "",
                      "isDeleted": false,
                      "isHidden": false,
                      "tags": [],
                      "type": "USER_DEFINED",
                      "isExternal": false,
                      "isDeprecated": false
                    },
                    "complete": true,
                    "incompleteDetail": [],
                    "sourceColumns": [
                      ""
                    ],
                    "targetColumns": [
                      ""
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "position": 1,
          "header": {
            "id": "",
            "indexVersion": 35643,
            "generationNum": 35643,
            "name": "Peril",
            "author": "",
            "created": 1620247188226,
            "modified": 1668544812673,
            "modifiedBy": "",
            "owner": "",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": true,
          "dataType": "VARCHAR",
          "type": "ATTRIBUTE",
          "sageOutputColumnId": "",
          "defaultAggrType": "NONE",
          "ownerName": "",
          "ownerType": "WORKSHEET",
          "entityCategory": "DEFAULT",
          "spotiqPreference": "DEFAULT",
          "isAdditive": false,
          "indexType": "DEFAULT",
          "indexPriority": 1,
          "sources": [
            {
              "tableId": "",
              "tableName": "",
              "columnId": "",
              "columnName": "TYPE_OF"
            }
          ],
          "synonyms": [],
          "injectedInlineValues": [],
          "precision": -1,
          "scale": 0,
          "isPrimaryKey": false,
          "isAttributionDimension": true,
          "derivationExpr": {
            "exprType": "LOGICAL_COLUMN_REFERENCE",
            "logicalColumn": {
              "header": {
                "id": "",
                "indexVersion": 35499,
                "generationNum": 35499,
                "name": "TYPE_OF",
                "author": "",
                "created": 1630716505804,
                "modified": 1668211006637,
                "modifiedBy": "",
                "owner": "",
                "isDeleted": false,
                "isHidden": false,
                "schemaStripe": "",
                "databaseStripe": "",
                "tags": [],
                "isExternal": false,
                "isDeprecated": false
              }
            },
            "joinPaths": [
              {
                "joins": [
                  {
                    "sourceTable": "",
                    "destinationTable": "",
                    "content": {
                      "relationships": [
                        {
                          "sourceColumn": "",
                          "destinationColumn": ""
                        }
                      ],
                      "weight": 1
                    },
                    "joinType": "INNER",
                    "type": "USER_DEFINED",
                    "isOneToOneJoin": false,
                    "header": {
                      "id": "",
                      "indexVersion": 35499,
                      "generationNum": 35499,
                      "name": "",
                      "description": "Copy of user table relationship",
                      "author": "",
                      "created": 1650658367043,
                      "modified": 1668211006686,
                      "modifiedBy": "",
                      "owner": "",
                      "isDeleted": false,
                      "isHidden": false,
                      "tags": [],
                      "type": "USER_DEFINED",
                      "isExternal": false,
                      "isDeprecated": false
                    },
                    "complete": true,
                    "incompleteDetail": [],
                    "sourceColumns": [
                      ""
                    ],
                    "targetColumns": [
                      ""
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "position": 2,
          "header": {
            "id": "",
            "indexVersion": 35643,
            "generationNum": 35643,
            "name": "Job",
            "author": "",
            "created": 1620247188226,
            "modified": 1668544812673,
            "modifiedBy": "",
            "owner": "",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": true,
          "dataType": "VARCHAR",
          "type": "ATTRIBUTE",
          "sageOutputColumnId": "",
          "defaultAggrType": "NONE",
          "ownerName": "",
          "ownerType": "WORKSHEET",
          "entityCategory": "DEFAULT",
          "spotiqPreference": "DEFAULT",
          "isAdditive": false,
          "indexType": "DEFAULT",
          "indexPriority": 1,
          "sources": [
            {
              "tableId": "",
              "tableName": "",
              "columnId": "",
              "columnName": ""
            }
          ],
          "synonyms": [],
          "injectedInlineValues": [],
          "precision": -1,
          "scale": 0,
          "isPrimaryKey": false,
          "isAttributionDimension": true,
          "derivationExpr": {
            "exprType": "LOGICAL_COLUMN_REFERENCE",
            "logicalColumn": {
              "header": {
                "id": "",
                "indexVersion": 35499,
                "generationNum": 35499,
                "name": "ROTATION_TRADE",
                "author": "",
                "created": 1630716505804,
                "modified": 1668211006637,
                "modifiedBy": "",
                "owner": "",
                "isDeleted": false,
                "isHidden": false,
                "schemaStripe": "",
                "databaseStripe": "",
                "tags": [],
                "isExternal": false,
                "isDeprecated": false
              }
            },
            "joinPaths": [
              {
                "joins": [
                  {
                    "sourceTable": "",
                    "destinationTable": "",
                    "content": {
                      "relationships": [
                        {
                          "sourceColumn": "",
                          "destinationColumn": ""
                        }
                      ],
                      "weight": 1
                    },
                    "joinType": "INNER",
                    "type": "USER_DEFINED",
                    "isOneToOneJoin": false,
                    "header": {
                      "id": "",
                      "indexVersion": 35499,
                      "generationNum": 35499,
                      "name": "",
                      "description": "Copy of user table relationship",
                      "author": "",
                      "created": 1650658367043,
                      "modified": 1668211006686,
                      "modifiedBy": "",
                      "owner": "",
                      "isDeleted": false,
                      "isHidden": false,
                      "tags": [],
                      "type": "USER_DEFINED",
                      "isExternal": false,
                      "isDeprecated": false
                    },
                    "complete": true,
                    "incompleteDetail": [],
                    "sourceColumns": [
                      ""
                    ],
                    "targetColumns": [
                      ""
                    ]
                  }
                ]
              }
            ]
          }
        },
        {
          "position": 3,
          "header": {
            "id": "",
            "indexVersion": 35643,
            "generationNum": 35643,
            "name": "Job Lenghth",
            "author": "",
            "created": 1620247188226,
            "modified": 1668544812673,
            "modifiedBy": "",
            "owner": "",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": true,
          "dataType": "VARCHAR",
          "type": "ATTRIBUTE",

`

`

with open('ex.json', 'r') as f:
    for line in f:
        if 'position' in line:
            for line in f: 
                if ' name: ' in line:
                    print(line)

` 我试过这段 python 代码,但它不起作用。我不确定如何只返回职位后的直接名称。文件中有多个名称实例,但我只需要位置之后的一个...

【问题讨论】:

    标签: python arrays json parsing


    【解决方案1】:
    import json
    with open('ex.json', 'r') as f:
        data = json.load(f)
    

    现在您可以访问所有 json 项目,就像您从数据变量访问 python 中的任何字典/对象一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2014-09-15
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多