python odoo13 省,市,地区或县三级联动及30多省3000多地区数据一2

121 篇文章 2 订阅

python odoo13 省,市,地区或县三级联动及30多省3000多地区数据一2

太长了,我放在资源里了https://download.csdn.net/download/fqfq123456/16673691,有用的去下,无分的找我 excel提取转换的代码也放如下

里面有excel及转成如下格式的txt文件

做好的成品效果图

<record id="ssq_qu_3033" model="crm.qu">
     <field name="name">塔河县</field>
     <field name="shi_id" ref="shengshdq.ssq_shi_29"/>
</record>
<record id="ssq_qu_3034" model="crm.qu">
     <field name="name">漠河县</field>
     <field name="shi_id" ref="shengshdq.ssq_shi_29"/>
</record>
<record id="ssq_qu_3035" model="crm.qu">
     <field name="name">呼中区</field>
     <field name="shi_id" ref="shengshdq.ssq_shi_29"/>
</record>
<record id="ssq_qu_3036" model="crm.qu">
     <field name="name">新林区</field>
     <field name="shi_id" ref="shengshdq.ssq_shi_29"/>
</record>
<record id="ssq_qu_3037" model="crm.qu">
     <field name="name">松岭区</field>
     <field name="shi_id" ref="shengshdq.ssq_shi_29"/>
</record>

excel提取转换的代码也放如下

# -*- coding: utf-8 -*-

import xlrd
import xlwt
import sqlite3
import requests

data=xlrd.open_workbook("中国省市区统计表.xls")
sddd = data.sheet_by_index(0)  # 取第一个工作表格
print(sddd.nrows)
data={}
i=0
zf=""
for index in range(sddd.nrows):
    i = i + 1
    data[i] = {}
    zf = ""
    for j, q in enumerate(sddd.row(index)):
        if q.value:
            if j==1:
                data[i]["市"] = q.value
            elif j==0:
                data[i]["省"] = q.value
            else:
                zf=zf+q.value+"|"
    data[i]["区"] = zf
#=========================================================

def 省(xh,sm):
    print("<record id='ssq_sheng_"+xh+"' model='crm.sheng'>")
    print("     <field name='name'>"+sm+"</field>")
    print("</record>")
sdata={}
for j,q in enumerate(sddd.col(0)):
    sdata[q.value]=""
for k,v in enumerate(sdata):
    省(str(k), str(v))
def 市(xh,sm):
    print('<record id="ssq_shi_'+xh+'" model="crm.shi">')
    print('     <field name="name">'+sm+'</field>')
    print('     <field name="sheng_id" ref="shengshdq.ssq_sheng_'+xh+'"/>')
    print('</record>')
def 区(xh,sm,xxh):
    print('<record id="ssq_qu_'+xxh+'" model="crm.qu">')
    print('     <field name="name">'+sm+'</field>')
    print('     <field name="shi_id" ref="shengshdq.ssq_shi_'+xh+'"/>')
    print('</record>')
i=0
def kweiz(arr):
    for k,v in enumerate(sdata):
        if v==arr:
            return k
for j,q in enumerate(data):
    shengmin=(data[q]["省"])
    x=str(kweiz(shengmin))
    shim=(data[q]["市"])
    市(x,shim)
    c=(data[q]["区"].split("|"))
    for k,v in enumerate(c):
        if v:
            i=i+1
            区(x,v,str(i))
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值