gpt4 book ai didi

python - 将Python中的JSON数据解析为CSV文件

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:38 27 4
gpt4 key购买 nike

我需要使用 python 解析以下 Json 数据并写入 csv 文件。下面我只包含了 2 个服务器名称,但我的列表很大。请帮助提供示例代码以获得所需的输出。

下面是文件 server_info.json 中我的 json 数据:

{
"dev-server":
{
"hoststatus":
{
"host_name":"dev-server",
"current_state":"2",
"last_time_up":"1482525184"
},
"servicestatus":
{
"/ Filesystem Check":
{
"host_name":"dev-server",
"service_description":"/ Filesystem Check",
"current_state":"1",
"state_type":"1"
},
"/home Filesystem Check":
{
"host_name":"dev-server",
"service_description":"/home Filesystem Check",
"current_state":"2",
"state_type":"2"
}
}
},
"uat-server":
{
"hoststatus":
{
"host_name":"uat-server",
"current_state":"0",
"last_time_up":"1460000000"
},
"servicestatus":
{
"/ Filesystem Check":
{
"host_name":"uat-server",
"service_description":"/ Filesystem Check",
"current_state":"0",
"state_type":"1"
},
"/home Filesystem Check":
{
"host_name":"uat-server",
"service_description":"/home Filesystem Check",
"current_state":"1",
"state_type":"2"
}
}
}
}

预期输出:

输出格式:

hoststatus.host_name,hoststatus.current_state,hoststatus.last_time_up
-------------------------------------------------------------
dev-server,2,1482525184
uat-server,0,1460000000

输出格式:

servicestatus.host_name,servicestatus.service_description,servicestatus.current_state,servicestatus.state_type
--------------------------------------------------------------------------------
dev-server,/ Filesystem Check,1,1
dev-server,/home Filesystem Check,2,2
uat-server,/ Filesystem Check,0,1
uat-server,/home Filesystem Check,1,2

最佳答案

详细阐述 Jean-Fracois Fabre 提到的内容,json.load() 可用于读取 JSON 文件并解析为 JSON 的 Python 对象表示。 json.loads() 执行相同的操作,只不过输入是字符串而不是文件(有关更多详细信息,请参阅 json 模块)。

记住这一点,假设您的服务器日志记录在文件中,那么您可以从以下内容开始:

import json
file = open('logs.txt')
data = json.load(file) # now the JSON object is represented as Python dict
for key in data.keys(): # dev-server and uat-server are keys
service_status = data[key]['servicestatus'] # this would give out the servicestatus
host_status = data[key]['hoststatus'] # this would give out the hoststatus

有了这个,您可以使用 csv模块以您想要的格式将其写入 CSV 文件。

关于python - 将Python中的JSON数据解析为CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41334055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com