使用python中相同csv(我自己的Json格式)的值创建Json列

2024-05-16 15:08:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧-

+----------+----------+--------+
|     FNAME|     LNAME|     AGE| JSON FOR EACH CUSTOMER
+----------+----------+--------+
|      EARL|     JONES|      35|   ? 
|      MARK|      WOOD|      20|   ?
+----------+----------+--------+

我有一个json格式-

{
  "applicantSegment": {
    "applicantName": {
      "name1": "" ,
      "name3": "" 
    },
    "ids": [
      {
        "type": "",
        "value": ""
      }
    ],
    "phones": [
      {
        "type": "",
        "value":""  
      }
    ],
    "emails": [
      {
        "value": "" 
      }
    ],
    "dob": {
      "dobDate": "" ,
      "age" : ""  
    }
  }

我需要在dataframe中创建一个新的json列,这样新列的每一行都有json值。例如,第一行的新列值为-

{
  "applicantSegment": {
    "applicantName": {
      "name1": "EARL" ,
      "name3": "JONES" 
    },
    "ids": [
      {
        "type": "",
        "value": ""
      }
    ],
    "phones": [
      {
        "type": "",
        "value":""  
      }
    ],
    "emails": [
      {
        "value": "" 
      }
    ],
    "dob": {
      "dobDate": "" ,
      "age": 35  
    }
  }

有人能帮忙吗? 具有新json行的必需数据帧

+----------+----------+--------+--------------------------------------------------------------
|     FNAME|     LNAME|     AGE| JSON FOR EACH CUSTOMER
+----------+----------+--------+--------------------------------------------------------------
|      EARL|     JONES|      35| {"applicantSegment": {"applicantName{"name1":
|          |                   |  "EARL","name3":"JONES" },"ids": [{"type": "","value": ""}],
|          |                   |  "phones"{"type":"","value":"" }],"emails": [{"value": "" }], 
|          |                   |   "dob": {"dobDate": "" ,"age":35  }}
|----------|----------|--------| ---------------------------------------------------------------                                                                             
|          |                   |  {Same as above but values from this row
|      MARK|      WOOD|      20|                                                }

Tags: jsonidsagevaluetypeemailsjonesname1
1条回答
网友
1楼 · 发布于 2024-05-16 15:08:46

这是一个骇客,但我之前回答不正确,感觉很糟糕,所以我想我应该给你一些至少像你描述的那样有效的东西,直到其他人给出更好的答案

import pandas as pd
import json

df = pd.DataFrame({'FNAME': ['EARL','MARK'],
                  'LNAME': ['JONES','WOOD'],
                  'AGE': ["35","20"]})

df['json_representation'] = """{ "applicantSegment": { "applicantName": { "name1": """ + df['FNAME'] + """, "name3": """ + df['LNAME'][i] + """  }, "ids": [ { "type": "", "value": "" } ], "phones": [ { "type": "", "value":""  } ], "emails": [ { "value": ""  } ], "dob": { "dobDate": "" , "age" : """ + df['AGE'][i] + """  } } })"""

我认为真正的解决方案是您应该使用python字典来构建它,但我看不出您有任何可以用作键的唯一项

d = {"applicantSegment": { "applicantName": { "name1": "" , "name3": ""  }, "ids": [ { "type": "", "value": "" } ], "phones": [ { "type": "", "value":""  } ], "emails": [ { "value": ""  } ], "dob": { "dobDate": "" , "age" : ""  } } }

s = ""
for i in df.index:
    d.update({ "applicantSegment": { "applicantName": { "name1": df['FNAME'][i] , "name3": df['LNAME'][i]  }, "ids": [ { "type": "", "value": "" } ], "phones": [ { "type": "", "value":""  } ], "emails": [ { "value": ""  } ], "dob": { "dobDate": "" , "age" : df['AGE'][i]  } } })
    s = s + ', ' + json.dumps(d)

s

相关问题 更多 >