专栏首页python3python中的struct

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python curses库

    tuxradar.com/content/code-project-build-ncurses-ui-python

    py3study
  • python之基础篇(二)

    数据结构就是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。这些数据元素可以是数字或者字符,甚至可以是其它类型的嵌套的数据结构

    py3study
  • Python在HiveQL中的运用

    在写HiveQL的时候,往往发现内置函数不够用,Hive支持用户自定义函数UDF,使用Java进行开发。很多时候这显得过于繁重。因而Hive中提供了Trans...

    py3study
  • 【程序猿水贴】风是如何形成的 | 大气运动的原因

    最近看新闻偶然和老爸聊到最新的疫情,老爸随口说这病毒会被风刮到对面的M国去,我反驳说这是病毒又不是细菌。后来老爸又说形成风的原因是地球自转,我笑到说怎么可能,风...

    浩Coding
  • 如何在Ubuntu 16.04使用Buildbot建立持续集成系统

    Buildbot是一个基于Python的持续集成系统,用于自动化软件构建,测试和发布过程。

    angel_郁
  • 和为S的两个数字VS和为s的连续正数序列

    题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。 例如输入数组1、2、4、7、1...

    猿人谷
  • 10.31NOIP模拟赛解题报告

    attack
  • 2018腾讯内部调岗面试试题3——找出数组中比左边大比右边的小的元素

    题目:以时间复杂度O(n)从长度为n的数组中找出同时满足下面两个条件的所有元素: (1)该元素比放在它前面的所有元素都大; (2)该元素比放在它后面的所...

    Dabelv
  • 实时迁移以及Jelastic中微服务的高可用性的Docker多容器编配

    容器震动了IT世界,由于其轻量级的虚拟化,更高的密度,弹性和快速配置,为云PaaS和IaaS提供了全新的虚拟化解决方案。

    Techeek
  • Docker多容器业务流程实时迁移和Jelastic中微服务的高可用性

    凭借其轻量级,更高的密度和灵活性,以及快速部署的特性,容器技术震惊了整个IT界,并为云计算的PaaS和IaaS提供了一种新的虚拟化解决方案。

    用户1206729

扫码关注云+社区

领取腾讯云代金券