无意中发现了python居然有了OdoRPC的库,惊喜之下赶紧尝试一番,比XMLRPC简洁了不少,机制看样子是利用的JsonRPC。

#原文出自KevinKong的博客http://www.cnblogs.com/kfx2007/ 转载不注明出处的没有小鸡鸡。

首先,去这里下载 odoorpc 。(看不见连接的,说明你读的不是原文哦)

解压下载的文件,并使用 setup.py install安装。

接下来写个Demo脚本 读取Excel并导入到目标库中。

  1. #coding:utf-8
  2.  
  3. import odoorpc
  4. import xlrd,base64
  5.  
  6. #user password
  7. db = 'test'
  8. user ='admin'
  9. passwd = 'admin'
  10.  
  11. #connection to odoo server
  12. odoo = odoorpc.ODOO('your server url',port='')
  13.  
  14. print 'logining...'
  15. odoo.login(db,user,passwd)
  16.  
  17. print u'原文地址:cnblogs.com/kfx2007...'
  18.  
  19. user = odoo.env.user
  20.  
  21. print 'current user:%s'%user.name
  22.  
  23. print 'reading from excel file...'
  24. excel = xlrd.open_workbook('123.xls')
  25. sheet = excel.sheets()[0]
  26.  
  27. for row in range(1,sheet.nrows):
  28. default_code = sheet.cell(row,0).value
  29. name = sheet.cell(row,1).value
  30. uom_id = 1
  31. list_price = sheet.cell(row,3).value
  32. type = 'product'
  33. sale_ok = True
  34. route_ids = [(4,6)]
  35. track_all =True
  36. sale_delay = 0
  37. produce_delay = 0
  38.  
  39. val = {
  40. 'default_code':default_code,
  41. 'name':name,
  42. 'uom_id':uom_id,
  43. 'list_price':list_price,
  44. 'type':type,
  45. 'sale_ok':sale_ok,
  46. 'route_ids':route_ids,
  47. 'track_all':track_all,
  48. 'sale_delay':sale_delay,
  49. 'produce_delay':produce_delay,
  50. #'categ_id':599,
  51. }
  52.  
  53. #get product template obj
  54. product_template_obj = odoo.env['product.template']
  55. products= product_template_obj.search([('name','=',name)])
  56. if len(products):
  57. #print products[0]
  58. product = product_template_obj.browse(products[0])
  59. if not product_template_obj.browse(products[0]).default_code or 'JY' in product_template_obj.browse(products[0]).default_code:
  60. print 'changing product:%s code...'%product.id
  61. product.defautl_code = default_code
  62. print product.default_code
  63. print 'product exists,skip...'
  64. continue
  65. #craete new product
  66. print 'creating product:%s'%name
  67. print 'autor:kevinkong(kfx2007@163.com)'
  68. product_template_obj.create(val)
  69.  
  70. "odoorpctest.py" 65L, 1720C

相比之下,比xmlrpc方便不少。

odoo XMLRPC 新库 OdooRPC 尝鲜的更多相关文章

  1. Leetcode多线程题库练习(新功能尝鲜)& 个人感悟

    大家好, 我是方子龙.很久没有自己写文章了. 一面是因为工作上的需求开发任务比较重,下班回家基本上就躺床玩几把王者,度过闲暇时光. 二面是一有点时间就自己主动地去看书和学习,知道自己还缺少很多知识,由 ...

  2. Java 8特性尝鲜:新新IO

    Java 8特性尝鲜:新新IO 在这个专题前面的文章中,我们已经看到,使用Java8的lambda表达式对现有的JDK1.2 I/O库的提升,主要是可以使用lambda表达式来构造java.io.Fi ...

  3. 小程序新能力-个人开发者尝鲜微信小程序

    个人开发者的福利 微信小程序,刚听到这个新名词的时候,我就兴冲冲的去找入口,看看自己能不能搞个微信小程序的HelloWorld,毕竟能在微信上把自己写的一些小工具跑起来还是满炫酷的. 没想,网上一查, ...

  4. Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

    前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的"效率"所吸引,所以这就来跟大家一起就着一个简单的例子来尝尝Spring全家桶里自带的JPA的鲜 Spr ...

  5. 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅

    本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言   Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...

  6. C++17尝鲜

    https://cloud.tencent.com/developer/article/1351910 [译]C++17,optional, any, 和 variant 的更多细节 用户261520 ...

  7. 前端每周清单第 49 期:Webpack 4 Beta 尝鲜,React Windowing 与 setState 分析,Web Worker 实战

    前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点:分为新闻热点.开发教程.工程实践.深度阅读.开源项目.巅峰人生等栏目.欢迎关注[前端之巅]微信公众号(ID: fron ...

  8. 尝鲜一试,Azure静态网站应用服务(Azure Static Web Apps) 免费预览,协同Github自动发布静态SPA

    背景 最近在浏览微软的文档的时候发现,微软喜欢用Hugo这个文档框架,有些技术产品的文档页面就用Hugo来做的,同时搭配Github + Azure Static Web Apps Service这个 ...

  9. Java协程编程之Loom项目尝鲜

    前提 之前很长一段时间关注JDK协程库的开发进度,但是前一段时间比较忙很少去查看OpenJDK官网的内容.Java协程项目Loom(因为项目还在开发阶段,OpenJDK给出的官网https://ope ...

随机推荐

  1. 求数组的长度 C

    对于数组array,计算其占用内存大小和元素个数的方法如下: C/C++ code ? 1 2 3 4 5 //计算占用内存大小 sizeof(array)   //计算数组元素个数 sizeof(a ...

  2. 回忆一次面试Android研发的问题

    有NDK开发JNI程序经验优先 intent   intentfileter 阿里云 线程,异步 1.图片缓冲2.解压3.获取搜索记录 4.在安卓开发过程中用到那些框架

  3. Codeforces Round #143 (Div. 2) E. Cactus 无向图缩环+LCA

    E. Cactus   A connected undirected graph is called a vertex cactus, if each vertex of this graph bel ...

  4. Servlet部分细节介绍

    1 Servlet与线程安全    因为一个类型的Servlet只有一个实例对象,那么就有可能会出现一个Servlet同时处理多个请求,那么Servlet是否为线程安全的呢?答案是:"不是线 ...

  5. PHP之数据类型

    1.PHP字符串(String):一个字符串是一串字符的序列,就像"Hello world!":可以将任何文本放在单引号和双引号中: <?php $x="Hello ...

  6. 04 DOM一窥

    BOM 浏览器对象模型 * window       alert(); 弹出框 confirm() 询问框 setInterval("run()",1000); 每隔1秒执行run ...

  7. 【bzoj2440】【bzoj3994】莫比乌斯反演学习

    哇..原来莫比乌斯代码这么短..顿时感觉逼格-- 写了这道题以后,才稍稍对莫比乌斯函数理解了一些 定理:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它 ...

  8. 关于listView 中的聚焦问题

    我在使用listView+adapter 中,遇到一个问题,就是item项添加了若干个可以被监听的控件后 在listView中的setOnItemClickListener失效了 原因是焦点已经在it ...

  9. 推荐一些mac 系统软件

    1. rightzoom http://www.macupdate.com/app/mac/30591/right-zoom 最大化快捷键设置 2. blotter 桌面日历,透明 3. AquaTe ...

  10. 你可能不再需要Underscore

    过去几年像 Underscore 和 lodash 等库进入许多JavaScript程序员的工具函数中.虽然这些工具库可以使你的代码写起来更容易,但是他们不一定使代码更简单或更容易理解. 各种工具函数 ...