python中的struct

简介:

我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组,字典。但是C语言中有些字节型的变量,在python中该如何实现呢?这点颇为重要,特别是要在网络上进行数据传输的话。

python提供了一个struct模块来提供转换。下面就介绍这个模块中的几个方法。

struct模块中最重要的三个函数是pack(), unpack(), calcsize()


# 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)

pack(fmt,v1, v2, ...)
 
#按照给定的格式(fmt)解析字节流string,返回解析出来的tuple
unpack(fmt,string)      
 
#计算给定的格式(fmt)占用多少字节的内存

calcsize(fmt)



参考:

http://blog.sina.com.cn/s/blog_4b5039210100f1tu.html


我的应用(构造zabbix的请求体):

    def gen_request(self, jsons):

        if isinstance(jsons, basestring):

            data = '%s\n' % jsons

        else:

            data = json.dumps(jsons)

        header = 'ZBXD\x01'

        datalen = struct.pack('Q', len(data))

        return header + datalen + data




      本文转自Tenderrain 51CTO博客,原文链接http://blog.51cto.com/tenderrain/1878645:,如需转载请自行联系原作者



相关文章
|
存储 数据处理 C语言
Python二进制通信:struct、array、ctypes模块比较
Python是一种广泛应用于数据处理和网络编程的语言。在与C语言或其他设备进行二进制通信时,Python需要使用一些专门的模块来转换数据格式。本文将介绍三个常用的模块:struct、array、ctypes,并从结构说明和性能分析两方面进行比较。
196 0
Python二进制通信:struct、array、ctypes模块比较
|
算法 C++ 数据格式
Python数据结构与算法(10)---二进制数据结构Struct
Python数据结构与算法(10)---二进制数据结构Struct
135 0
Python数据结构与算法(10)---二进制数据结构Struct
|
存储 编译器 数据格式
Python基础之:struct和格式化字符
Python基础之:struct和格式化字符
Python基础之:struct和格式化字符
|
数据格式 Python
每周一个 Python 模块 | struct
struct 模块包括用于在字节串和 Python 数据类型(如数字和字符串)之间进行转换的函数。
118 0
|
8天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
8天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
12天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。

热门文章

最新文章