使用rpclib进行Python网络编程时的注释问题


Posted in Python onMay 06, 2015

rpclib 是一个非常好用的 python webservice 库,可以动态的生成 wsdl, 不过这个项目已经基本停止,并被一个新的项目取代 spyne,由于旧的项目 工作已经比较稳定,所以我没有贸然升级到 spyne。

我在 rpclib 编写 service 方法时,遇到一个奇怪的错误: 访问 wsdl (http://localhost:9898/?wsdl) 页面,返回 502 Bad Gateway。

在日志中看到如下错误信息:

ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

我检查了代码,对比了之前可以工作的版本,发现并没有什么不对的地方。

@srpc(RequestModel, _returns=Unicode)
def shenzhen(request):
  """
  根据传入的token、车牌号及车驾号,以及验证码
  查询该车辆的违章记录
  """
  logging.info(request)
  query = ShenZhenQuery(request)
  return query.query_car_records()

但就是没有正确生成 wsdl,后来我删除了方法内所有的内容(包括注释),只留下一条返回 unicode 字符串的语句,然后就工作正常了,但是当我加入了方法的文档注释后,又出来了之前的错误,于是我 怀疑到了注释上:中文的注释,却没有使用 unicode 字符串,于是使用 u"" 中文注释 """ 后,一切正常!

查看生成的 wsdl,发现原来原来 rpclib 使用注释生成了

<wsdl:documentation>

根据传入的token、车牌号及车驾号,以及验证码 查询该车辆的违章记录

</wsdl:documentation>

难怪一遇到中文注释就会出错!

Python 相关文章推荐
Python实现的一个简单LRU cache
Sep 26 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 Python
django中send_mail功能实现详解
Feb 06 Python
python爬虫获取多页天涯帖子
Feb 23 Python
python 图像平移和旋转的实例
Jan 10 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
python 修改本地网络配置的方法
Aug 14 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
Aug 29 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
python能做哪方面的工作
Jun 15 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
pymongo给mongodb创建索引的简单实现方法
May 06 #Python
Python中用PIL库批量给图片加上序号的教程
May 06 #Python
python写入中英文字符串到文件的方法
May 06 #Python
python使用xlrd模块读写Excel文件的方法
May 06 #Python
在Python中使用全局日志时需要注意的问题
May 06 #Python
python通过post提交数据的方法
May 06 #Python
python实现逆波兰计算表达式实例详解
May 06 #Python
You might like
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
javascript 写类方式之二
2009/07/05 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python抓取网页中的图片示例
2014/02/28 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
python enumerate内置函数用法总结
2020/01/07 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
简历自我评价怎么写呢?
2014/01/06 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
运动会稿件300字
2014/02/14 职场文书
机械系毕业生求职信
2014/05/28 职场文书
小学体育教学随笔
2015/08/14 职场文书