- 浏览: 2652041 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
今天遇到python一个坑,调用memcached的get_man报错:
memcache2 get :1:photo:latest:forward:5855687 cost 2857.6438427
转发 <#59066487>
unpickle :1:photo:latest:forward:5855687 FAIL __import__() argument 1 must be string without null bytes, not str
转发 <#59066487>
unpickle :1:photo:latest:forward:5855687 FAIL __import__() argument 1 must be string without null bytes, not str
同样一个key,一个是通过get,一个是通过get_many,结果报错。code如下:
# -*- coding: utf-8 -*- from django.core.management import setup_environ import settings setup_environ(settings) key = 'photo:latest:forward:5855687' from django.core.cache import cache print cache.get(key) print cache.get_many([key])
跟进代码发现问题出在get_man的反序列化上:
def get_multi(self,key): result = cacheService.getMulti(key) if result is None: return [] else: result_dict = {} for k,val in result.items(): try: file = StringIO(val) _up = unpickler(file) val = _up.load() result_dict[k] = val except Exception,e: print 'unpickle %s FAIL %s'%(k,e) pass return result_dict
尝试把序列化改成:
result_dict[k] = pickle.loads(val)
报错信息变了:
unpickle :1:photo:latest:forward:5855687 FAIL must be string, not unicode
难道是val的type不是str,是unicode? 通过print type(val) 打印出来,果然是unicode。
发表评论
-
spring-cloud问题排查
2019-11-18 14:58 513### 问题1报错,应用无法启动 org.springfra ... -
log4j 和slf4j的 类冲突解决
2018-07-14 16:11 19781. 检查 log4j 和slf4j的冲突 pub ... -
HikariPool-1 - Connection is not available, request timed out after
2018-05-07 19:13 6673在开发中遇到 HikariPool-1 - Conn ... -
java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
2018-05-03 16:54 2403Java代码 publi ... -
python读取图片exif信息
2014-11-06 10:53 2398f = open("/home/admin/tlo ... -
log4j问题总结-加载配置文件
2014-08-20 16:34 1063今天遇到log4j的log4j.properties没有生效 ... -
一个诡异的类冲突错误排查记录
2014-08-13 10:44 815今天遇到一个问题排查了很久,记录一下。 问题原因,日常环境 ... -
tomcat7.0.26的连接数控制bug的问题排查
2014-04-23 19:51 1709今儿线上一台机器,监控一直在告警, mtophost[CM ... -
tomcat,jboss,jetty访问出现404错误问题记录
2014-04-21 19:51 1690原因是WEB-INF下面缺少jboss-web.xml ... -
Python程序的执行原理
2014-04-14 15:44 17221. 过程概述 Python先把代码(.py文件)编译成字 ... -
记录Hadoop native libraries无法load的问题
2014-04-10 19:45 2297今天遇到一个错误,在本地往Hadoop写文件的时候报了一个错 ... -
Exception性能问题
2014-01-24 22:25 13061.从Exception往上介绍相关结构、代码 ... -
spring加载xml去远程获取dtd验证xml的问题
2014-01-24 11:57 899最近遇到spring 加载xml去远程获取dtd,但外网不 ... -
如何创建一个短链服务
2013-12-26 16:23 0参考: http://stackoverflow.com ... -
hbase查询超时导致的错误
2013-12-25 19:53 2714今天上线跑一个hbase程序出现如下错误: org.ap ... -
hbase无法启动问题
2013-12-24 23:53 927今天遇到hbase无法启动,找了很久,才发现可能是data ... -
web.xml配置注意点
2013-12-19 20:29 6391. servlet启动初始化 servlet默认只有访 ... -
Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决
2013-12-17 23:22 3908作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章 ... -
linger close用法
2013-12-13 14:18 963Linux下tcp连接断开的时候调用close()函数,有 ... -
python 解析命令参数(argument)组件argparse
2013-12-11 17:35 1399参考: http://youngsterxyf.githu ...
相关推荐
Python 反序列化是一种数据恢复技术,它允许程序将之前序列化的对象状态还原为可执行的形式。在网络安全领域,尤其是渗透测试和红队行动中,反序列化被用于实现某些高级攻击技术,如远程代码执行(RCE)和免杀(防...
Python的序列化与反序列化是将数据结构或对象转换为可存储或传输的格式,然后再次转换回原数据的过程。这一过程对于保存程序状态、跨进程通信、数据持久化等场景非常有用。Python提供了多种序列化库,如pickle、json...
Python 反序列化是一种将序列化的数据恢复为原始对象的过程,通常用于持久化数据或在网络间传输对象。在本文中,我们将探讨如何利用 Python 的反序列化机制来规避安全软件的检测,从而实现免杀(避免杀毒软件的检测...
用户可以编写.proto文件,定义消息类型,然后编译成各种目标语言(如C++、Java或Python)的类,这些类可以用于序列化和反序列化数据。 在处理Proto文件时,序列化意味着将根据.proto文件定义的消息实例转换为二进制...
2. **编译器**: 使用protobuf编译器将`.proto`文件转换为特定语言(如Python、Java、C++)的源代码,生成的数据结构包含序列化和反序列化的方法。 3. **序列化与反序列化**: 序列化是将结构化数据转换为二进制流的...
编译器protoc会根据.proto文件生成对应语言(如C++、Java、Python)的源代码,这些源代码包含了对消息进行序列化和反序列化的函数。 3. **16进制与protobuf反序列化**: 当数据以16进制字符串的形式存在时,需要先...
### 浅析Python序列化与反序列化 在软件开发领域,序列化和反序列化是数据处理过程中不可或缺的一部分。序列化是指将程序中的对象转换为可以存储或传输的格式的过程;而反序列化则是相反的过程,即把存储或传输后的...
3. **性能优化**:大量数据的序列化和反序列化可能影响性能,对于性能敏感的场景,可以考虑使用更高效的序列化库或压缩数据。 4. **嵌套层级**:JSON支持嵌套结构,但过深的嵌套可能导致解析困难或内存消耗过大。 ...
在IT领域,序列化和反序列化是两个关键概念,主要应用于数据持久化、网络通信以及对象存储等场景。序列化是指将一个对象的状态转换为可存储或传输的形式,通常是二进制流;反序列化则相反,是将这个二进制流恢复为...
Python的dill模块是Python标准库pickle模块的一个扩展,提供了更强大的序列化和反序列化功能。pickle模块主要用于将Python对象转化为字节流(序列化),以便存储或通过网络传输,然后可以恢复这些对象(反序列化)。...
Python脚本可以方便地与Java环境交互,例如通过网络发送序列化数据,触发Shiro框架中的漏洞。 在标签中提到的"反射"是Java编程中的一个重要概念,它允许程序在运行时检查类、接口、字段和方法的信息,并能动态调用...
Python之序列化是编程中的一个重要概念,特别是在数据存储、网络通信和对象持久化等场景下。序列化是指将数据结构或对象转化为可传输或存储的格式,而反序列化则是相反的过程,即从序列化的数据中恢复原来的对象。在...
详解Python 序列化Serialize 和 反序列化Deserialize 序列化 (serialization) 序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化, 它将流转换为对象。这两个过程结合起来,可以轻松地...
在IT行业中,序列化和反序列化是两个关键的概念,特别是在数据存储、网络通信和对象持久化等场景中。它们是计算机科学中的重要技术,帮助我们处理和传递数据。 序列化是指将对象的状态转化为可存储或可传输的形式,...
### Python3 序列化与反序列化详解 在Python编程中,序列化与反序列化是处理数据存储和传输的重要技术手段。本篇文章将深入介绍Python3中序列化与反序列化的用法,并通过实例详细讲解如何使用`pickle`模块进行字符...
### Python Json序列化与反序列化的详尽解析 #### 一、引言 在现代软件开发中,数据交换是不可避免的。特别是在不同编程语言之间共享数据时,需要一种通用的数据格式来确保数据的一致性和互操作性。JSON...
在Python世界中,序列化通常用于将数据结构转化为可存储或传输的格式,而反序列化则是将这些格式恢复为原始的数据结构。Cista库的出现为C程序员提供了类似的功能,使得在C语言环境中处理数据变得更加便捷。 Cista库...
在Java、Python、C#等编程语言中,序列化是指将对象的状态转换为可存储或传输的数据格式的过程,而反序列化则是这个过程的逆操作,即从这些数据格式恢复原来的对象状态。 在Java中,序列化主要通过实现`java.io....
它还使用相互递归函数对对象树进行序列化和反序列化,但是它具有一些功能,例如depth参数,该参数允许您在特定点停止对对象树的序列化或反序列化。 pyxser模块是自我记录的,如果您想看一下文档,只需运行pydoc ...
2. 使用不同的序列化库(如pickle和json)对比Python对象的序列化和反序列化效果。 3. 考虑安全问题,编写一个防范反序列化攻击的示例。 4. 探索如何处理序列化过程中的循环引用问题。 5. 比较XML、JSON和protobuf三...