簡體   English   中英

在Python中用多列組成嵌套JSON

[英]Compose nested JSON with multi columns in Python

我有一個csv文件,並嘗試從中撰寫JSON。 文件中有多條記錄,但我在這里僅給出一組示例記錄。此結構由claimID驅動。 在ClaimLineDetail和ClaimSpecDiag上有嵌套。我想我必須創建某種列表來處理此問題,然后問題是如何將其附加到所需的結構中。 我確實需要一些指導才能達到預期的效果。 我不確定只是假設,因為有多個列,所以可以細分不同的部分並在以后追加。

代碼:

import csv,json

data = []
with open('JsonRequestPricingMedical.csv','r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print row

csv文件:

claimId,subscriberId,claimType,claimSubType,providerId,totalChargeAmt,claimLineNo,pos_code,procedureCode,subdiagnosisCode,svcLineFromDt,svcLineToDt,chargedAmt,clmLineUnits,presentOnAdmit,diagnosisCode
18A000730400,101924200,M,M,002664514003,585,1,11,92014,H43393,2017-06-19,2017-06-19,160,1,U,H43393
18A000730400,101924200,M,M,002664514003,585,2,12,92015,H43395,2017-06-19,2017-06-19,160,2,U,H43394

所需的JSON

[
  {
   "claimsHeader":" {
    "claimId": "18A000730400",
    "subscriberId": "101924200",
    "claimType":{
                    "code": "M"
                },
     "claimSubType": {
                    "code": "M"
                },  
     "providerId" :"002664514003",
     "totalChargeAmt": "585",
     "claimLineDetail" :[
                {
                "claimLineNo": "1",
                 "placeOfService": {
                           "code": "11"
                },
                 "procedureCode": {
                        "code": "92014"
                },
                "subDiagnosisCd": {
                        "code": "H43393"
                },
                "svcLineFromDt": "2017-06-19",
                "svcLineToDt": "2017-06-19",
                "chargedAmt": "160",
                "clmLineUnits": "1",
                },
                {
                "claimLineNo": "2",
                 "placeOfService": {
                           "code": "12"
                },
                 "procedureCode": {
                        "code": "92015"
                },
                "subDiagnosisCd": {
                        "code": "H433945
                },
                "svcLineFromDt": "2017-06-19",
                "svcLineToDt": "2017-06-19",
                "chargedAmt": "160",
                "clmLineUnits": "2",
                }
     ],
     {
        "claimSpecDiag": [

            "presentOnAdmit": "",
            "diagnosisCode": "H43393",

         },
         {
            "presentOnAdmit": "",
            "diagnosisCode": "H43394",
         }

    ]   
  }
]

讀取csv時,每一行代表由特殊字符分隔的變量,在本例中為逗號:“,”。

您可以通過執行line_variables = row.split(',')分離每個變量

只需通過第一行,對於其他所有代碼,請執行以下操作:

result = {
   "claimsHeader":" {
    "claimId": line_variables[0],
    "subscriberId": line_variables[1],
    "claimType":{
        "code": line_variables[2]
    }
...

最后,只需將結果添加到帶有your_list.append(result)的列表(在for循環之前創建your_list.append(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM