python DRF 查询序列化serializer.data获取数据处理记录

news2024/11/26 7:26:42

使用model, serializer, view执行查询操作最后得到数据, 通过序列化serializer.data获取查询结果集, 最后得到的数据如下所示:

[

OrderedDict([('id', 4), ('time', '2023/09/18 11:11:20'), ('level', '4'), ('count', 4), ('s_assets', '设备4'), ('d_assets', '设备4'), ('sip', '10.60.6.4'), ('dip', '10.60.6.4'), ('sport', '44'), ('dport', '44'), ('description', 'dffd44'), ('type', '4'), ('protocol_content', 'fdfd4')]),

OrderedDict([('id', 2), ('time', '2023/09/18 11:11:19'), ('level', '2'), ('count', 3), ('s_assets', '设备2'), ('d_assets', '设备2'), ('sip', '10.60.6.6'), ('dip', '1060.6.7'), ('sport', '22'), ('dport', '22'), ('description', '22df'), ('type', '2'), ('protocol_content', 'fdfd2')]),

OrderedDict([('id', 1), ('time', '2023/09/18 11:11:18'), ('level', '1'), ('count', 1), ('s_assets', '设备1'), ('d_assets', '设备2'), ('sip', '10.60.6.3'), ('dip', '10.60.6.7'), ('sport', '11'), ('dport', '12'), ('description', 'dfdf'), ('type', '1'), ('protocol_content', 'fdfd')])

很多新手会比较懵, 一看这是啥数据类型??别慌, 且听我一一为你道来

上面得到的数据是Python中的OrderedDict数据类型。OrderedDict是Python标准库collections中的类,它是一个字典(dict)的子类,特点是它会保持元素被插入的顺序。这在处理需要记录插入顺序的数据时非常有用。 

在上面的例子中,每个OrderedDict对象都包含一组键值对,每个键值对都代表一条网络流量的信息,比如'id'、'time'、'level'等是键,其后的值是具体的信息,如'10.60.6.4'、'设备4'等。每个单独的OrderedDict对象代表一条网络流量记录。

如果我们想访问或者处理这些数据,可以使用Python字典和OrderedDict的常见操作,例如:获取一个键的值(dict[key]),遍历所有的键值对(dict.items()),或者获取所有的键(dict.keys()), 所有的值(dict.values())

一, 遍历以上数据, 需要得到每个键和值实例代码如下:

from collections import OrderedDict

data_dict = OrderedDict([('id', 4), ('time', '2023/09/18 11:11:20'), ('level', '4'), ('count', 4), ('s_assets', '设备4'), ('d_assets', '设备4'), ('sip', '10.60.6.4'), ('dip', '10.60.6.4'), ('sport', '44'), ('dport', '44'), ('description', 'dffd44'), ('type', '4'), ('protocol_content', 'fdfd4')]), OrderedDict([('id', 2), ('time', '2023/09/18 11:11:19'), ('level', '2'), ('count', 3), ('s_assets', '设备2'), ('d_assets', '设备2'), ('sip', '10.60.6.6'), ('dip', '1060.6.7'), ('sport', '22'), ('dport', '22'), ('description', '22df'), ('type', '2'), ('protocol_content', 'fdfd2')]), OrderedDict([('id', 1), ('time', '2023/09/18 11:11:18'), ('level', '1'), ('count', 1), ('s_assets', '设备1'), ('d_assets', '设备2'), ('sip', '10.60.6.3'), ('dip', '10.60.6.7'), ('sport', '11'), ('dport', '12'), ('description', 'dfdf'), ('type', '1'), ('protocol_content', 'fdfd')])

for key, value in data_dict.items():

        print(f"键:{key},值:{value}")

运行后得到的结果如下:

 

二, 遍历以上数据, 需求, 将每个value写进csv文件:

部分关键示例代码:

2.1, 写csv先定义一组表头:

import csv

from collections import OrderedDict

header = ['编号', '时间', '事件级别', '发生次数', '源资产', '目的资产', '源IP', '目的IP', '源端口', '目的端口',
          '事件描述', '协议类型', '协议解析内容']
data_dict = serializer.data  # 序列化得到的便是上面那组字典数据
filepath = "/hardisk/download/whitelist_log.csv"  # 要写入的csv文件
with open(filepath, 'w', newline='') as f:
    write = csv.writer(f)
    write.writerow(header)
    for i in range(len(data_dict)):
        write.writerow(data_dict[i].values())  # 获取上面数据每一个value的内容写入csv文件

写入效果如下:

好了, 今天就先写到这.下期再会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 cortex-A7核 UART总线 实验

一、C 1)uart4.h #ifndef __UART4_H__ #define __UART4_H__ #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h&quo…

前缀、中缀、后缀表达式相互转换工具

目录 1. 界面一览 2. 使用说明 3. 实例演示 3.1 输入中缀 3.2 输入前缀 3.3 输入后缀 3.4 选择错误的类型 4. 代码 5. 资源地址 关于什么是前缀、中缀、后缀表达式,相信你不知道这个东西,那你也不会点进来这篇博客,当然,…

BACnet/IP协议采集网关支持modbus RTU采集

楼宇自动化在现代建筑中扮演着重要的角色,它可以集成和控制各种设备和系统,提高建筑的能效和舒适性。然而,不同的设备和系统通常使用不同的通信协议,这给楼宇自动化的实施带来了一定的挑战。为了解决这个问题,BACnet和…

怎样使用 NFTScan Solana API 快速创建 NFT 应用程序?

之前,Solana 凭借其超高的性能和低廉的费用,已然成为 NFT 项目最青睐的公链之一,众多知名 NFT 项目如 DeGods、Okay Bears、Degenerate Ape Academy 等都选择在 Solana 上发行。意味着 Solana 链上每天都会产生海量的 NFT 交易数据&#xff0…

路由器和路由到底啥区别?

在Vue中会有路由(Route)的概念,一些伙伴还不知道嘞,这就给大家讲解一下 我们日常出行都会碰到导航这个概念。 导航系统会给出从当前位置到目标位置的建议路径,这就是路由。 而 GPS 导航仪根据路由提供的路径,告诉我们每个路口是…

十七,IBL-打印各个Mipmap级别的hdr环境贴图

预滤波环境贴图类似于辐照度图,是预先计算的环境卷积贴图,但这次考虑了粗糙度。因为随着粗糙度的增加,参与环境贴图卷积的采样向量会更分散,导致反射更模糊,所以对于卷积的每个粗糙度级别,我们将按顺序把模…

计算机等级考试—信息安全三级真题七

目录 一、单选题 二、填空题 三、综合题 一、单选题

SAP从入门到放弃系列之QM主检验特征

文章目录 一、概述二、系统操作2.1、创建主检验特征-QS212.1.1、初始界面2.1.2、 内容页面控制数据一般信息 2.2、主检验特征有效期管理和历史管理 一、概述 检验特征是对检验内容的描述。很多相同的产品的检验内容是由重复和相通性的,所以将这一类在物料的检验任务…

chalk

今天在看antd-design,发现一个叫chalk的东西 https://juejin.cn/post/6973102969076219941https://juejin.cn/post/6973102969076219941

算法通过村第十关-并归|黄金笔记|手撕并归排序

文章目录 前言并归排序的原理总结 前言 提示:有时我会担心你们发现我其实很普通。爱并不需要你与众不同。--查理麦克西《男孩、鼹鼠、狐狸和马》 并归排序算是经典的分治思想中的问题,这个非常典型的题目。 并归排序的原理 并归排序,简单来说…

预测算法6|BP_adaboost算法原理及其实现

BPNN是一种根据误差反向传播算法训练的多层前馈网络,具有很强的非线性处理能力,是目前应用最广泛的神经网络之一。但BPNN的泛化能力相对较差,在优化过程中易陷入局部极小值,同时,它的鲁棒性差,学习过程的收…

【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(1,二维连续型和离散型随机变量基本概念与性质)

文章目录 引言一、二维随机变量及分布1.1 基本概念1.2 联合分布函数的性质 二、二维离散型随机变量及分布三、多维连续型随机变量及分布3.1 基本概念3.2 二维连续型随机变量的性质 写在最后 引言 隔了好长时间没看概率论了,上一篇文章还是 8.29 ,快一个…

一个人可以开发游戏吗?

在今天的数字时代,游戏产业已经成为全球最具活力的领域之一。从大型游戏开发工作室到独立游戏制作人,游戏开发已经变得更加多样化和容易进入。然而,对于许多梦想成为游戏开发者的人来说,一个关键问题一直挥之不去:一个…

组网行动指南:打造对跨国企业友好的专用网络环境

在全球数字化转型的浪潮下,越来越多的企业跨国发展业务,由于跨域网络的复杂性和自建网络架构的各种限制,导致分散在不同地理位置的站点无法实现数据互通和协作。 跨国企业组网常见痛点 痛点一:自建网络方案经常掉线,影…

No128.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

CompletableFuture-线程池运行选择

如果没有传入自定义线程池,都用默认线程池ForkJoinPool 传入一个线程池,如果你执行第一个任务时,传入了一个自定义线程池, 调用thenRun方法执行第二个任务时,则第二个任务和第一个任务时共用同一个线程池 调用thenRun…

26559-2021 机械式停车设备 分类

声明 本文是学习GB-T 26559-2021 机械式停车设备 分类. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了机械式停车设备的分类及有关的型式、型号和适停汽车组别、尺寸及质量。 本文件适用于 GB/T 3730.1—2001定义的乘用车及商用…

K8sGPT,基于 AI 的云原生终极工具

随着人工智能和机器学习的兴起,企业和组织越来越多地寻找创新方法来利用这些技术来获得竞争优势。 该领域最强大的工具之一便是 K8sGPT,即基于 Kubernetes 的 GPT,它将 Kubernetes 编排的优势与 GPT 模型的高级自然语言处理能力结合在一起。 …

人工智能AI 全栈体系(八)

第一章 神经网络是如何实现的 神经网络只是提供了一个一般性方法,具体用它求解什么问题,根据问题的特点,定义好输入输出以及损失函数就可以了。 在介绍神经网络语言模型结构的时候,每个词 w 都对应一个长度为 m 的向量 C(w)&…

深度学习(1)---卷积神经网络

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络(Convolut…