【发布时间】:2020-11-07 13:06:50
【问题描述】:
我的目标是从这个 JSON 文件 (output.json) 中取出主机名,并使用 python 将它们放入一个 CSV 列表 (newoutput.csv),最终结果如下所示:
主机1、主机2、主机3
有几百个条目,主机名在“specific_data.data.hostname”下
这里是 output.json 文件的 sn-p:
[
{
"adapter_list_length": 3,
"adapters": [
...
],
"internal_id": "...",
"labels": [
"...",
"..."
],
"specific_data.data.hostname": [
"TheHost1"
],
"specific_data.data.last_seen": "...",
"specific_data.data.network_interfaces.ips": [
"...",
"...",
"..."
],
"specific_data.data.network_interfaces.mac": [
"..."
],
"specific_data.data.os.type": [
"..."
]
},
{
"adapter_list_length": 3,
"adapters": [
"...",
"....",
"...",
"..."
],
"internal_id": "...",
"labels": [
"...",
"Router"
],
"specific_data.data.hostname": [
"TheHost2"
],
"specific_data.data.last_seen": "...",
"specific_data.data.network_interfaces.ips": [
我是 python 新手,任何帮助都将不胜感激。
【问题讨论】:
-
首先我会serialize json 作为python 对象。然后我会使用map 函数来提取“specific_data.data.hostname”属性的数组。然后我会使用 string.Join() 函数将其转换为 csv 字符串
-
请发布您已经尝试过的内容以及实际问题所在。 JSON文件读取? CSV 输出写入?提取主机名? ...?
-
specific_data.data.hostname是一个数组而不是字符串。该数组中可以有多个条目吗?我在下面发布的解决方案假定数组只有一个值。 -
我真的不知道该尝试什么,就像我说的,我对 python 很陌生,甚至不知道从哪里真正开始。我已经保存了这个 json 文件,我只是想把它过滤掉。
标签: python json linux python-2.7 csv