在 Python 中创建嵌套数据字典

Create a nested data dictionary in Python

我有如下数据

{
  "employeealias": "101613177", 
  "firstname": "Lion", 
  "lastname": "King", 
  "date": "2022-04-21", 
  "type": "Thoughtful Intake", 
  "subject": "Email: From You Success Coach"
}

{
  "employeealias": "101613177", 
  "firstname": "Lion",
  "lastname": "King",
  "date": "2022-04-21",
  "type": null,
  "subject": "Call- CDL options & career assessment"
}

我需要创建如下字典:

您可以在 Python 中创建嵌套字典,如下所示: student = {name : "Suman", Age = 20, gender: "male",{class : 11, roll no: 12}}

您必须使用列表创建新字典并使用for循环检查是否存在employeealiasfirstnamelastname以将其他信息添加到子列表。如果项目不存在,那么您必须使用 employeealiasfirstnamelastname 和其他信息创建新项目。

data = [
{"employeealias":"101613177","firstname":"Lion","lastname":"King","date":"2022-04-21","type":"Thoughtful Intake","subject":"Email: From You Success Coach"},
{"employeealias":"101613177","firstname":"Lion","lastname":"King","date":"2022-04-21","type":"null","subject":"Call- CDL options & career assessment"},
]

result = {'interactions': []}

for row in data:
    found = False
    for item in result['interactions']:
        if (row["employeealias"] == item["employeealias"]
           and row["firstname"] == item["firstname"]
           and row["lastname"] == item["lastname"]):
            item["activity"].append({
               "date": row["date"],
               "subject": row["subject"],
               "type": row["type"],
            })
            found = True
            break
        
    if not found:
        result['interactions'].append({
            "employeealias": row["employeealias"],
            "firstname": row["firstname"],
            "lastname": row["lastname"],
            "activity": [{
                           "date": row["date"],
                           "subject": row["subject"],
                           "type": row["type"],
                        }]
        })
            
print(result)            

编辑:

你像普通文本一样阅读行,但你必须使用模块 json

将文本转换为字典
import json

data = [] 

with open("/Users/Downloads/amazon_activity_feed_0005_part_00.json") as a_file:      
    for line in a_file:         
        line = line.strip()
        dictionary = json.loads(line)         
        data.append(dictionary)

print(data)