如何生成用户所需的JSON文件 我有一个JSON文件。我想更改为用户要求的格式。 input.json文件 在python的帮助下生成一个新的JSON文件:
读取给定的JSON文件并创建一个新的JSON文件如何生成用户所需的JSON文件 我有一个JSON文件。我想更改为用户要求的格式。 input.json文件 在python的帮助下生成一个新的JSON文件:,python,python-3.x,Python,Python 3.x,读取给定的JSON文件并创建一个新的JSON文件 [{ "Data": [{ "Domain_name": " Devlopment", "Domain_Id": "34876", "app": "Tez", "appId": 4578, "sum": 54 }, { "Domain_name": "production", "Domain_Id": "09876",
[{
"Data": [{
"Domain_name": " Devlopment",
"Domain_Id": "34876",
"app": "Tez",
"appId": 4578,
"sum": 54
}, {
"Domain_name": "production",
"Domain_Id": "09876",
"app": "phonepay",
"appId": 2312,
"sum": 54
}],
"totalResult": {
"results": [{
"sum": 2027.0
}]
},
"unknownGroup": {
"results": [{
"sum": 0.0
}]
},
"performanceStats": {
"fileReadCount": 1,
"decompressionCount": 0,
"decompressionCacheEnabledCount": 0
},
"metadata": {
"eventTypes": ["Data_collection"],
"eventType": "Data_collection",
"openEnded": true
}
}, {
"Data":
[{
"name": " Quality_Analyst",
"Domain_Id": "623456",
"app": "slicepay",
"appId": 989766,
"sum": 54
}, {
"name": "Testing",
"Domain_Id": "76554",
"app": "krazybee",
"appId": 1234,
"sum": 54
}],
"totalResult": {
"results": [{
"sum": 2027.0
}]
},
"unknownGroup": {
"results": [{
"sum": 0.0
}]
},
"performanceStats": {
"fileReadCount": 1,
"decompressionCount": 0,
"decompressionCacheEnabledCount": 0
},
"metadata": {
"eventTypes": ["Data_collection"],
"eventType": "Data_collection",
"openEnded": true
}
}]
试试看:
json_data = ... # load your json file
for item in json_data:
new_data = []
for data in item["Data"]:
data_item = dict()
data_item["Domain_name"] = data["name"][0]
data_item["Domain_Id"] = data["name"][1]
data_item["app"] = data["name"][2]
data_item["appId"] = data["name"][3]
data_item["sum"] = data["results"][0]["sum"]
new_data.append(data_item)
item["Data"] = new_data
输出:
[
{'Data': [
{'Domain_name': ' Devlopment',
'Domain_Id': '34876',
'app': 'Tez',
'appId': '4578',
'sum': 54},
{'Domain_name': 'production',
'Domain_Id': '09876',
'app': 'phonepay',
'appId': '2312',
'sum': 50.0}],
'totalResult': {'results': [{'sum': 2027.0}]},
'unknownGroup': {'results': [{'sum': 0.0}]},
'performanceStats':
{'fileReadCount': 1,
'decompressionCount': 0,
'decompressionCacheEnabledCount': 0},
'metadata':
{'eventTypes': ['Data_collection'],
'eventType': 'Data_collection',
'openEnded': True}},
{'Data': [
{'Domain_name': ' Quality_Analyst',
'Domain_Id': '623456',
'app': 'slicepay',
'appId': '989766',
'sum': 54},
...
Hii,
尝试以下代码:这里是json_dic,意思是您的json数据
def change_format(val_lst):
key_lst = ['Domain_name','Domain_Id','app','appId']
res_lst = []
for dic in val_lst:
temp_dic = {key_lst[i]:val for i,val in enumerate(dic['name'])}
temp_dic['sum'] = dic['results'][0]['sum']
res_lst.append(temp_dic)
return res_lst
print(list(map(lambda x:dict([(key,change_format(val_lst)) if key=='Data' else (key,val_lst) for key,val_lst in x.items()]),json_dic)))
结果:
[{'Data': [{'Domain_name': ' Devlopment', 'Domain_Id': '34876', 'app': 'Tez', 'appId': '4578', 'sum': 54}, {'Domain_name': 'production', 'Domain_Id': '09876', 'app': 'phonepay', 'appId': '2312', 'sum': 50.0}], 'totalResult': {'results': [{'sum': 2027.0}]}, 'unknownGroup': {'results': [{'sum': 0.0}]}, 'performanceStats': {'fileReadCount': 1, 'decompressionCount': 0, 'decompressionCacheEnabledCount': 0}, 'metadata': {'eventTypes': ['Data_collection'], 'eventType': 'Data_collection', 'openEnded': 'true'}}, {'Data': [{'Domain_name': ' Quality_Analyst', 'Domain_Id': '623456', 'app': 'slicepay', 'appId': '989766', 'sum': 54}, {'Domain_name': 'Testing', 'Domain_Id': '7654', 'app': 'krazybee', 'appId': '1234', 'sum': 50.0}], 'totalResult': {'results': [{'sum': 2027.0}]}, 'unknownGroup': {'results': [{'sum': 0.0}]}, 'performanceStats': {'fileReadCount': 1, 'decompressionCount': 0, 'decompressionCacheEnabledCount': 0}, 'metadata': {'eventTypes': ['Data_collection'], 'eventType': 'Data_collection', 'openEnded': 'true'}}]
使用我的函数来更改新的\u json数据的格式,我只使用列表理解来更改新的\u数据。快乐编码到目前为止您尝试了什么?如果您询问是否可能,是的,python是图灵完整的,可以完成这一点以及您可以想象的每一个计算。到目前为止,我尝试了这个方法,将json def format_json():与open(“input.json”)一起导入为f:data=f.read()data1=json.loads(data)new_list=[]对于数据1[“facets”]:print(len(d))r={}r[“name”]=d[“name”][0],r[“Id”]=d[“name”][1],r[“Appname”]=d[“name”][2],r[“appid”]=d[“name”][3],r[“totalsum”]=d[“results”][0][“sum”]new sum”]new u-list.append(r)print(new u-list)格式我无法查看整个结果对象、未知组、性能统计数据和元数据。我只能看到这些[{'Domain_name':'Devlopment','Domain_Id':'34876','app':'Tez','appId':'4578','sum':54},{'Domain_name':'production','Domain_Id':'09876','app':'phonepay','appId':'2312','sum':50.0}]。。。。。。。。。
[{'Data': [{'Domain_name': ' Devlopment', 'Domain_Id': '34876', 'app': 'Tez', 'appId': '4578', 'sum': 54}, {'Domain_name': 'production', 'Domain_Id': '09876', 'app': 'phonepay', 'appId': '2312', 'sum': 50.0}], 'totalResult': {'results': [{'sum': 2027.0}]}, 'unknownGroup': {'results': [{'sum': 0.0}]}, 'performanceStats': {'fileReadCount': 1, 'decompressionCount': 0, 'decompressionCacheEnabledCount': 0}, 'metadata': {'eventTypes': ['Data_collection'], 'eventType': 'Data_collection', 'openEnded': 'true'}}, {'Data': [{'Domain_name': ' Quality_Analyst', 'Domain_Id': '623456', 'app': 'slicepay', 'appId': '989766', 'sum': 54}, {'Domain_name': 'Testing', 'Domain_Id': '7654', 'app': 'krazybee', 'appId': '1234', 'sum': 50.0}], 'totalResult': {'results': [{'sum': 2027.0}]}, 'unknownGroup': {'results': [{'sum': 0.0}]}, 'performanceStats': {'fileReadCount': 1, 'decompressionCount': 0, 'decompressionCacheEnabledCount': 0}, 'metadata': {'eventTypes': ['Data_collection'], 'eventType': 'Data_collection', 'openEnded': 'true'}}]