json数据归档后打印到excel的思路

開開新新 发表于: 2021-07-02   最后更新时间: 2021-07-02 14:44:38   86 游览

我有一段json数据,我想将它写入到excel中。

需要对message做去重处理,我没有想明白数据应该怎么样保存。

我的思路是这样,首先json数据保存到一个容器中,然后循环打印到excel。
那这个容器 应该用什么?
写入excel,我是用xlsxwriter,有什么算法可以横着打印吗?

写入的效果是这样

服务名:Lonsid_MallAssist_Web_Host

trace.id:a3e3796ca145b448829d0d0f96661e67
timestamp:2021-06-21T06:57:52.603Z
type:Abp.UI.UserFriendlyException
message:未发现该用户的WeiXinUserRelation,粉丝编号447519

trace.id:a3e3796ca145b448829d0d0f96661e67
timestamp:2021-06-21T06:57:52.603Z
type:Abp.UI.UserFriendlyException
message:未发现该用户的WeiXinUserRelation,粉丝编号447519

trace.id:a3e3796ca145b448829d0d0f96661e67
timestamp:2021-06-21T06:57:52.603Z
type:Abp.UI.UserFriendlyException
message:未发现该用户的WeiXinUserRelation,粉丝编号447519
{
      [
       {
        "_source" : {
          "error" : {
            "exception" : [
              {
                "handled" : false,
                "type" : "Abp.UI.UserFriendlyException",
                "message" : "未发现该用户的WeiXinUserRelation,粉丝编号447519"
              }
            ],
          },
          "trace" : {
            "id" : "a3e3796ca145b448829d0d0f96661e67"
          },
          "@timestamp" : "2021-06-21T06:57:52.603Z",
          "service" : {
            "name" : "Lonsid_MallAssist_Web_Host",
          }
        }
     },
       {
        "_source" : {
          "error" : {
            "exception" : [
              {
                "handled" : false,
                "type" : "Abp.UI.UserFriendlyException",
                "message" : "未发现该用户的WeiXinUserRelation,粉丝编号447519"
              }
            ],
          },
          "trace" : {
            "id" : "a3e3796ca145b448829d0d0f96661e67"
          },
          "@timestamp" : "2021-06-21T06:57:52.603Z",
          "service" : {
            "name" : "Lonsid_MallAssist_Web_Host",
          }
        }
     },
     {
        "_source" : {
          "error" : {
            "exception" : [
              {
                "handled" : false,
                "type" : "Abp.UI.UserFriendlyException",
                "message" : "未发现该用户的WeiXinUserRelation,粉丝编号447519"
              }
            ],
          },
          "trace" : {
            "id" : "a3e3796ca145b448829d0d0f96661e67"
          },
          "@timestamp" : "2021-06-21T06:57:52.603Z",
          "service" : {
            "name" : "Lonsid_MallAssist_Web_Host",
          }
        }
     }
    ]
   }

最佳的效果是想打印成这样
screenshot



发表于 28天前

可以通过字典非常简单的删除重复的内容,因为字典不允许重复键,如下所示:

te = [
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
          "Name": "Bala1",
          "phone": "None"
      }      
    ]

unique = { each['Name'] : each for each in te }.values()

print unique

输出:

[{'phone': 'None', 'Name': 'Bala1'}, {'phone': 'None', 'Name': 'Bala'}]

容器你如果需要持久化,就放到文本里,每次读出来,如果去重之后的数据,马上就写到excel里了,那就用临时缓存即可,不需要中途存储了。

如果数据量非常大,就分片读取和处理。

開開新新 -> 半兽人 28天前
 [ {服务名: [{接口名: 123}, {接口名: 234}]} ]

我也就是想将json构建成这样的结构,就是这个构建思路没想明白。

一个json一条数据,整个json数组里面还有重复的service.name「上面的数据就是都一样」,如果service.name相同的话,需要归档到一个service.name下面,也就是最后那张图片那样。

半兽人 -> 開開新新 28天前

1、先弄一个map,将相同服务名的归到里面
2、然后依次去重

開開新新 -> 半兽人 28天前
A = 【】
B =【】
C = 【】
.....
.....
.....

如果用服务名创建一个"容器",那后面我怎么将所有"容器"都打印出来呢? 程序是不知道有多少"容器"的

找不到想要的答案?

我要提问
提问