【问题标题】:Extract All Parent/Child Json values in Python在 Python 中提取所有父/子 Json 值
【发布时间】:2020-03-25 05:54:01
【问题描述】:

以下是输入的 Json 模式和预期的输出响应 \n

输入模式: { “要求”: { "requestId": "ABCDE", “模型类型”:“新”, "lineOfBusiness": "WC", “请求日期”:“2019-12-10”, “评估日期”:“2019-12-11”, "jobNumber": "GDERS", "branchNumber": "IODGH", "quoteEffectiveDate": "2019-12-11", "policyNumber": "12XYZ34", "policyEffectiveDate": "2019-12-10", "policyExpirationDate": "2020-12-09" }, “高级历史”:[{ "jobNumber": "GDERS", "branchNumber": "IODGH", “保单号码”: ””, "policyEffectiveDate": "2019-04-01", "policyExpirationDate": "2020-03-31", “班级代码”: [ { "classCode":"AB", "transactionDate": "2019-04-01", “交易类型”:“1”, "locationNumber": "12345", “溢价”:1200, “工资单或曝光”:100 },

                {
                "classCode":"CD",               
                "transactionDate": "2019-04-01",
                "transactionType": "1",
                "locationNumber": "12345",
                "premium": 1200,
                "payrollOrExposure": 100
                }
            ]

        },
        ]
}

Output Expected:
request.requestId = "ABCDE"
request.modelType = "NEW"
..
..
..
..
premiumHistory.jobNumber="GDERS"
premiumHistory.branchNumber="IODGH"
premiumHistory.policyNumber=""
..
premiumHistory.classCode.classCode="AB"
premimumHistory.classCode.transactionDate="2019-04-01"
..
..
..

代码需要在 python 中,我已经使用不同的技术进行了测试,但无法获得所需的输出。非常感谢任何帮助。

问候,

【问题讨论】:

  • 如果你也发布你已经尝试过的细节,你将有更好的机会获得帮助。
  • 请尝试修正您的格式,以便更容易看到发生了什么

标签: python json


【解决方案1】:

这是我迄今为止尝试过的

enter code here
def extract(obj, arr,parent_key):
    #Recursively search for values of key in JSON tree.
    if isinstance(obj, dict):
        for k, v in obj.items():
            print("\n Dict::",k,"::",v)
            if isinstance(v, (dict, list)):
                print("1::",k)
                parent_key=k
                extract(v, arr,parent_key)
            else:
                print("Before Append::",parent_key)
                arr.append(parent_key+"."+k+"|"+str(v))
    elif isinstance(obj, list):
        for item in obj:
            print("\n List::",item)
            extract(item, arr,parent_key)
    return arr
arr = []
parent_key=''
extract(data,arr,parent_key)

【讨论】:

    【解决方案2】:

    对于格式问题,我深表歉意。甚至没有意识到这一点。

    以下是输入的 Json 模式和预期的输出响应 \n

    输入模式:

    {
        "request": {
            "requestId": "ABCDE",
            "modelType": "NEW",
            "lineOfBusiness": "WC",
            "requestDate": "2019-12-10",
            "evaluationDate": "2019-12-11",
            "jobNumber": "GDERS",
            "branchNumber": "IODGH",
            "quoteEffectiveDate": "2019-12-11",
            "policyNumber": "12XYZ34",
            "policyEffectiveDate": "2019-12-10",
            "policyExpirationDate": "2020-12-09"
        },
        "premiumHistory": [{
            "jobNumber": "GDERS",
            "branchNumber": "IODGH",
            "policyNumber": "",
            "policyEffectiveDate": "2019-04-01",
            "policyExpirationDate": "2020-03-31",
            "classCode":
                [
                    {
                    "classCode":"AB",
                    "transactionDate": "2019-04-01",
                    "transactionType": "1",
                    "locationNumber": "12345",
                    "premium": 1200,
                    "payrollOrExposure": 100
                    },
    
                    {
                    "classCode":"CD",               
                    "transactionDate": "2019-04-01",
                    "transactionType": "1",
                    "locationNumber": "12345",
                    "premium": 1200,
                    "payrollOrExposure": 100
                    }
                ]
    
            },
            ]
    }
    
    Output Expected:
    request.requestId = "ABCDE"
    request.modelType = "NEW"
    ..
    ..
    ..
    ..
    premiumHistory.jobNumber="GDERS"
    premiumHistory.branchNumber="IODGH"
    premiumHistory.policyNumber=""
    ..
    premiumHistory.classCode.classCode="AB"
    premimumHistory.classCode.transactionDate="2019-04-01"
    ..
    ..
    ..
    

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多