gpt4 book ai didi

python - 在 Python 中形成 Json 模型的问题

转载 作者:行者123 更新时间:2023-12-01 07:23:59 25 4
gpt4 key购买 nike

我想将 JSON 转换为作业模型以在 API 中使用它。以下是输入和预期输出。我还粘贴了我使用的代码,但它没有按预期工作。我们需要从任务键中提取值并将它们作为单独的模型列表。

输入 JSON

{
"id": "one",
"type": "db",
"tasks" : {
"process1" : ["j1", "j2"],
"process2" : ["j4"]
}
}

预期输出:

{
"model": [
{
"data": [
{
"columnName": "tasks",
"columnValue": "j1"
},
{
"columnName": "process_name",
"columnValue": "process1"
}
]
},
{
"data": [
{
"columnName": "tasks",
"columnValue": "j2"
},
{
"columnName": "process_name",
"columnValue": "process1"
}
]
},
{
"data": [
{
"columnName": "tasks",
"columnValue": "j4"
},
{
"columnName": "process_name",
"columnValue": "process2"
}
]
}
]
}

我尝试过下面的代码,但它对我没有帮助。

wanted_keys = ['tasks'] # The keys you want
task = dict((k, data[k]) for k in wanted_keys if k in data)
#print(type(task.items()))
ne = {}
for key, value in task.items():
ne = dict(value)
#print(ne)

jobModel = []
tableData = []
for key, value in ne.items():
#print(key)
for i in value:

#print(i)
tableData.append({'columnName': 'job_name', 'columnValue': i})
tableData.append({'columnName': 'jobplan_name', 'columnValue': key})
jobModel.append(tableData)

#print(tableData)
print(jobModel)

最佳答案

您可以使用:

from pprint import pprint
data = {
"id": "one",
"type": "db",
"tasks" : {
"process1" : ["j1", "j2"],
"process2" : ["j4"]
}
}

tasks_data = data['tasks']
new_data = []

for process, tasks in tasks_data.items():
for task in tasks:
new_data.append({'data': [
{'columnName': 'tasks', 'columnValue': task},
{'columnName': 'process_name', 'columnValue': process}]})

output = {'model': new_data}

pprint(output)

输出:

{'model': [{'data': [{'columnName': 'tasks', 'columnValue': 'j1'},
{'columnName': 'process_name',
'columnValue': 'process1'}]},
{'data': [{'columnName': 'tasks', 'columnValue': 'j2'},
{'columnName': 'process_name',
'columnValue': 'process1'}]},
{'data': [{'columnName': 'tasks', 'columnValue': 'j4'},
{'columnName': 'process_name',
'columnValue': 'process2'}]}]}

关于python - 在 Python 中形成 Json 模型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57543511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com