为了账号安全,请及时绑定邮箱和手机立即绑定

将 JSON 数据过滤到 CSV 列表中

将 JSON 数据过滤到 CSV 列表中

holdtom 2023-03-16 11:01:26
我的目标是从这个 JSON 文件 (output.json) 中取出主机名,并使用 python 将它们放入 CSV 列表 (newoutput.csv) 中,最终结果如下所示:主机 1、主机 2、主机 3有几百个条目,主机名在“specific_data.data.hostname”下以下是 output.json 文件的片段: [      {        "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 的新手,非常感谢任何帮助。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您可以迭代字典列表并使用在每条记录中找到的主机列表扩展“主机”列表。当您拥有所有值时,构建逗号分隔的字符串。


import json

# python 2.7 needs different open

import codecs

filename = "output.json"

# json is usually utf-8 encoded but this is not 100% guaranteed

data = json.loads(codecs.open(filename, encoding="utf-8"))

hosts = []

for record in data:

    if "specific_data.data.hostname" in record:

        hosts.extend(record["specific_data.data.hostname"])

# assuming hosts are all ascii

with open("hostnames.csv", "w") as fileobj:

    fileobj.write(",".join(hosts))

    fileobj.write("\n")


查看完整回答
反对 回复 2023-03-16
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

以下将csv变量设置为以逗号分隔的主机名的字符串。


import json

object = json.loads(snippet)

csv = ', '.join(x['specific_data.data.hostname'][0] for x in object)


查看完整回答
反对 回复 2023-03-16
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信