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))