Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过将字典合并到空白主字典中,在Python中创建具有特定结构的JSON_Python_Json_Dictionary - Fatal编程技术网

通过将字典合并到空白主字典中,在Python中创建具有特定结构的JSON

通过将字典合并到空白主字典中,在Python中创建具有特定结构的JSON,python,json,dictionary,Python,Json,Dictionary,所以,我有JSON数据,我从HTML表单中获取。我必须格式化这些数据,使其具有特定的JSON结构,如下所示 [ { "Header": "Stats", "Line_01": "Line 01", "Line_02": "Line 02", "Line_03": "Line 03", "Line_

所以,我有JSON数据,我从HTML表单中获取。我必须格式化这些数据,使其具有特定的JSON结构,如下所示

[
 {
   "Header": "Stats",
   "Line_01": "Line 01",
   "Line_02": "Line 02",
   "Line_03": "Line 03",
   "Line_04": "Line 04",
   "Line_05": "Line 05",
   "Line_06": "Line 06",
   "Line_07": "Line 07"
 },
 {
   "Header": "JUV",
   "Line_01": "89",
   "Line_02": "34",
   "Line_03": "765",
   "Line_04": "123",
   "Line_05": "1",
   "Line_06": "4",
   "Line_07": "455"
 },
 {
   "Header": "SMP",
   "Line_01": "12",
   "Line_02": "89",
   "Line_03": "124",
   "Line_04": "678",
   "Line_05": "92",
   "Line_06": "120",
   "Line_07": "5"
 }
]
我从HTML表单中得到的JSON是:

[
    {
        "name": "00",
        "value": "JUV"
    },
    {
        "name": "00",
        "value": "STATS"
    },
    {
        "name": "00",
        "value": "SMP"
    },
    {
        "name": "00",
        "value": "89"
    },
    {
        "name": "01",
        "value": "LINE 01"
    },
    {
        "name": "02",
        "value": "12"
    },
    {
        "name": "03",
        "value": "34"
    },
    {
        "name": "04",
        "value": "LINE 02"
    },
    {
        "name": "05",
        "value": "89"
    },
    {
        "name": "06",
        "value": "765"
    },
    {
        "name": "07",
        "value": "LINE 03"
    },
    {
        "name": "08",
        "value": "124"
    },
    {
        "name": "09",
        "value": "123"
    },
    {
        "name": "10",
        "value": "LINE 04"
    },
    {
        "name": "11",
        "value": "678"
    },
    {
        "name": "12",
        "value": "1"
    },
    {
        "name": "13",
        "value": "LINE 05"
    },
    {
        "name": "14",
        "value": "92"
    },
    {
        "name": "15",
        "value": "4"
    },
    {
        "name": "16",
        "value": "LINE 06"
    },
    {
        "name": "17",
        "value": "120"
    },
    {
        "name": "18",
        "value": "455"
    },
    {
        "name": "19",
        "value": "LINE 07"
    },
    {
        "name": "20",
        "value": "5"
    }
]
表单如下所示:HTML表单-粘贴板上的图像

到目前为止,我正在尝试的Python代码是:

import json

jarr = []
final_file = {}
json_template = {
   "Header": "",
   "Line_01": "",
   "Line_02": "",
   "Line_03": "",
   "Line_04": "",
   "Line_05": "",
   "Line_06": "",
   "Line_07": ""
 }

with open("testo101.json",) as f:
    jdata = json.load(f)

k = 0

for i in range(8):         
    a =[]
    for j in range(3):     
         a.append(jdata[k]['value'])
         k+=1
    jarr.append(a)

for i, x in enumerate(json_template):
    json_template[x]=jarr[i][1]
final_file.update(json_template)
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][0]
final_file.update(json_template)
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][2]     
final_file.update(json_template)

print(final_file)
因此,到目前为止,我所做的是:

import json

jarr = []
final_file = {}
json_template = {
   "Header": "",
   "Line_01": "",
   "Line_02": "",
   "Line_03": "",
   "Line_04": "",
   "Line_05": "",
   "Line_06": "",
   "Line_07": ""
 }

with open("testo101.json",) as f:
    jdata = json.load(f)

k = 0

for i in range(8):         
    a =[]
    for j in range(3):     
         a.append(jdata[k]['value'])
         k+=1
    jarr.append(a)

for i, x in enumerate(json_template):
    json_template[x]=jarr[i][1]
final_file.update(json_template)
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][0]
final_file.update(json_template)
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][2]     
final_file.update(json_template)

print(final_file)
  • 导入我从HTML表单获得的JSON文件
  • 将其转换为3x8矩阵。。。所以我可以得到每列的值
    很容易
  • 我可以用 我刚刚创建的2D数组的帮助
问题:

我不知道如何将我从2D数组的每一列生成的3个字典合并到一个单独的字典
final\u文件中
,以便将其作为JSON文件转储,这就是我想要的。我怎样才能做到这一点。。。或者如果有其他更好的方法,请帮助


谢谢。

这些代码应该可以完成以下工作:

import json

jarr = []
final_file = [] # CHANGE #1
json_template = {
   "Header": "",
   "Line_01": "",
   "Line_02": "",
   "Line_03": "",
   "Line_04": "",
   "Line_05": "",
   "Line_06": "",
   "Line_07": ""
 }

with open("testo101.json",) as f:
    jdata = json.load(f)

k = 0

for i in range(8):         
    a =[]
    for j in range(3):     
         a.append(jdata[k]['value'])
         k+=1
    jarr.append(a)

for i, x in enumerate(json_template):
    json_template[x]=jarr[i][1]
final_file.append(json_template.copy()) # CHANGE #2
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][0]
final_file.append(json_template.copy()) # CHANGE #2
for i, x in enumerate(json_template):
    json_template[x]=jarr[i][2]     
final_file.append(json_template.copy()) # CHANGE #2


with open('yourjson.json', 'w') as jsonfile:
    json.dump(final_file, jsonfile, indent=4)
我对您的代码做了两个更改:

  • 您需要一个字典列表,而不仅仅是一个字典来转储三个字典,所以我将final_文件更改为一个列表
  • 制作每个json_模板后,我在列表中附上了该模板的副本。(
    .copy()
    很重要,否则以后的更改将反映在前面的条目中,并且最终会得到三个相同的条目)
  • 我写了倾销代码,并将其附在最后。您可以打开
    yourjson.json
    查看结果