首页 > 解决方案 > 为每个数组调用函数打印python

问题描述

我想遍历这个 JSON 响应并将每个数组单独发送到另一个函数进行打印。

json_list = { 
"value":  [
 {
"name": "placeHolder",
"section": "right"
  },
{
"name": "Overview",
"section": "left"
}, 
{
"name": "ByFunction",
"section": "left"
}, 
{
"name": "Time",
"section": "left"
 },
 {
"name": "allFit",
"section": "left"
}
]
}

下面是我正在使用的代码。我正在遍历列表并选择键和值并将它们配对,然后发送到打印功能。但它只打印第一个 JSON 数组。我想将它们单独打印为 JSON 字符串。

 objects_list = []
 for data in json_list['value']:
     d = collections.OrderedDict()
     d['name'] = data['name']
     d['section'] = data['section']
  objects_list.append(d)
  get_print(objects_list)         

 def get_print(data):
     for dt in data:
        name= dt['name'],
        section= dt['section'], 
      print(name)
      print(section)

标签: pythonpython-3.x

解决方案


这是你想要做的吗?

在第一个示例中,我按原样使用 json_list。

json_list = { 
"value":  [
 {
"name": "placeHolder",
"section": "right"
  },
{
"name": "Overview",
"section": "left"
}, 
{
"name": "ByFunction",
"section": "left"
}, 
{
"name": "Time",
"section": "left"
 },
 {
"name": "allFit",
"section": "left"
}
]
}

没有 json.loads

value_list = json_list['value']
for k in value_list:
    print (k['name'],k['section'])

使用 json.loads

在此示例中,我将整个 json 列表转换为字符串。

import json
json_list = '{"value":[{"name": "placeHolder","section": "right"},{"name": "Overview","section": "left"},{"name": "ByFunction","section": "left"},{"name": "Time","section": "left"},{"name": "allFit","section": "left"}]}'

data  = json.loads(json_list)
value_list = data['value']

for k in value_list:
    print (k['name'],k['section'])

输出将打印为:

placeHolder right
Overview left
ByFunction left
Time left
allFit left

将 json 保存到列表中

如果要将其保存到列表中以便以后处理,可以执行以下操作:

name = []
section = []

value_list = json_list['value']
for k in value_list:
    name.append(k['name'])
    section.append(k['section'])

print (name)
print (section)

输出如下:

['placeHolder', 'Overview', 'ByFunction', 'Time', 'allFit']

['right', 'left', 'left', 'left', 'left']

推荐阅读