在python中将json转换为类似数据帧的输出

2024-09-24 02:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本从CA Introscope中提取数据。脚本打印出如下值:

print data

[(TimesliceGroupedMetricData){
   metricData[] = 
      (MetricData){
         agentName = "web01|WEB|instance_01"
         metricName = "WebSpherePMI|orbPerfModule:ConcurrentRequestCount"
         metricType = 258
         metricValue = "0"
      },
      (MetricData){
         agentName = "app01|APP|instnace_03"
         metricName = "WebSpherePMI|beanModule|mobile.jar:ReturnsToPoolCount"
         metricType = 258
         metricValue = "3"
      },
      (MetricData){
         agentName = "app02|APP|instance_02"
         metricName = "JSP|add_client:Stall Count"
         metricType = 385
         metricValue = "0"
      },
      (MetricData){
         agentName = "web05|WEB|instance_02"
         metricName = "WebSpherePMI|beanModule|bizlogic#bizlogic.jar|ejb.entity|WorkStepInstanceEBBBean:ReadyCount"
         metricType = 258
         metricValue = "0"
      },
   timesliceEndTime = 2015-01-05 16:33:15
   timesliceStartTime = 2015-01-05 16:28:15


}]

我需要输出如下:

metricName,AppName,ServerName,InstanceName,值,timesliceEndTime

实际数据:

^{pr2}$

我用逗号分隔字段输出,但不是必需的。有人能给我一些用python做这个的指南吗?在


Tags: 数据instance脚本webappjarcaagentname
1条回答
网友
1楼 · 发布于 2024-09-24 02:26:23

好的,就在这里。我做了一个虚拟的类,用你的数据填充它,所以用它来测试,YMMV。在

def dumpDataBlob(blob):
    """ Print data object in required format """

    timesliceEndTime = blob.timesliceEndTime

    for entry in blob.metricData:
        # gather values
        metricName = entry.metricName
        metricValue = entry.metricValue
        (serverName, appName, instanceName) = entry.agentName.split('|')

        print('{met},{app},{ser},{ins},{val},{tim}'.format(
            met=metricName,
            app=appName,
            ser=serverName,
            ins=instanceName,
            val=metricValue,
            tim=timesliceEndTime))

这是我的测试课,仅供参考

^{pr2}$

相关问题 更多 >