【发布时间】:2021-02-16 13:42:13
【问题描述】:
所以我最近一直在尝试使用 python 构建一个动态 JSON 库,但我在循环数据时遇到了问题。这个问题可能很容易解决,但我对编程非常陌生,尤其是使用 JSON 时。
基本上,我正在尝试输出类似于以下内容的 JSON 输出:
{
"src_host": [
"list item 1",
[
"SSH",
"Telnet",
"STMP"
]
]
},
{
"src_host": [
"list item 2",
[
"SSH",
"Telnet",
"STMP"
]
]
}
我想用另一个列表中的单个条目填充每个“src_host”列表。我基本上想为提供的每个列表项定义一个 src_host 。我使用的代码如下所示:
host_dict = {}
host_dict["src_host"] = []
host_services_list = ["SSH","Telnet","STMP"]
mylist = ["list item 1", "list item 2"]
counter = 0
for item in mylist:
json_data['zone'][0]['hosts'].append(host_dict)
host_dict['src_host'].append(mylist[counter])
counter = counter + 1
host_dict['src_host'].append(host_services_list)
我遇到的问题似乎与我为填充 Json 数据所做的循环有关。由于某种原因,我无法弄清楚,当我执行此代码时,Json 输出如下所示:
{
"src_host": [
"list item 1",
"list item 2",
[
"SSH",
"Telnet",
"STMP"
]
]
},
{
"src_host": [
"list item 1",
"list item 2",
[
"SSH",
"Telnet",
"STMP"
]
]
}
如您所见,列表项“列表项 1”和“列表项 2”被附加到每个 src_host 列表中,而不是“列表项 1”被添加到第一个 src_host 和“列表项 2”被添加到第二个。
我假设我的逻辑在这里有缺陷,或者我错过了一些超级简单的东西,但我目前似乎无法解决这个问题并想寻求帮助。
感谢您的所有帮助!
注意: ['zone'][0]['hosts'] 是因为这部分 Json 是较大 Json 文件中的一小部分。我认为没有必要显示 Json 文件的每一部分,但仍想解释一下以防万一。
【问题讨论】:
-
您真的希望所有嵌套信息都是列表吗?我会为那些嵌套项目使用字典,因此如果列表中只有一个项目,您不必执行所有
[0]。