Meituan_add_province.py 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. import os
  2. def get_mysql():
  3. """
  4. 建立并返回一个到数据库的连接对象
  5. """
  6. import pymysql
  7. # return pymysql.connect(
  8. # host='localhost', # 修改后的主机
  9. # port=3306, # 添加端口号
  10. # user='root', # 修改后的用户名
  11. # password='dfwy2025', # 修改后的密码
  12. # db='drug_data', # 修改后的数据库名
  13. # charset='utf8mb4'
  14. # )
  15. return pymysql.connect(
  16. host='47.119.164.65', # 修改后的主机
  17. port=3306, # 添加端口号
  18. user='test_c', # 修改后的用户名
  19. password='Dfwy@2025', # 修改后的密码
  20. db='test2', # 修改后的数据库名
  21. charset='utf8mb4'
  22. )
  23. def main():
  24. # 连接数据库
  25. conn = get_mysql()
  26. # 创建游标对象
  27. cur = conn.cursor()
  28. query = f"""
  29. SELECT id, business_license_address
  30. FROM mt_shop_info_middle
  31. WHERE province = '' AND business_license_address != ''
  32. """
  33. cur.execute(query)
  34. results = cur.fetchall()
  35. print(f"results={results}")
  36. # 逐条处理每条数据
  37. for row in results:
  38. addr_id = row[0]
  39. address = row[1]
  40. print(f"address={address}")
  41. # address = '湖南省长沙市岳麓区西湖街道金星中路398号玛依拉山庄6栋113号'
  42. if '北京市' in address:
  43. province = '北京'
  44. city = '北京'
  45. elif '天津市' in address:
  46. province = '天津'
  47. city = '天津'
  48. elif '上海市' in address:
  49. province = '上海'
  50. city = '上海'
  51. elif '重庆市' in address:
  52. province = '重庆'
  53. city = '重庆'
  54. else :
  55. if '省' in address:
  56. province, _, rest_address = address.partition('省')
  57. #print('province ->', province)
  58. # print('rest_address ->', rest_address)
  59. if '市' in rest_address:
  60. city, _, rest_rest_address = rest_address.partition('市')
  61. # print('rest_rest_address ->', rest_rest_address)
  62. else:
  63. city = ''
  64. #print('city ->', city)
  65. else:
  66. province = ''
  67. if '市' in address:
  68. city, _, rest_address = address.partition('市')
  69. #print('city ->', city)
  70. # print('rest_address ->', rest_address)
  71. if (city == '深圳' or city == '广州' or city == '普宁' or city == '中山' or
  72. city == '惠州' or city == '茂名' or city == '韶关' or city == '佛山' or
  73. city == '汕头' or city == '东莞' or city == '揭阳' or city == '化州' or
  74. city == '清远' or city == '河源' or city == '湛江' or city == '英德' or
  75. city == '兴宁' or city == '开平' or city == '珠海' or city == '潮州' or
  76. city == '四会' or city == '肇庆' or city == '阳春' or city == '阳江' or
  77. city == '梅州' or city == '台山' or city == '江门' or city == '陆丰' or
  78. city == '汕尾' or city == '高州' or city == '雷州' or city == '南雄'):
  79. province = '广东'
  80. elif (city == '合肥' or city == '淮南' or city == '天长' or city == '滁州' or
  81. city == '芜湖' or city == '蚌埠' or city == '马鞍山' or city == '淮北' or
  82. city == '铜陵' or city == '安庆' or city == '黄山' or city == '阜阳' or
  83. city == '宿州' or city == '六安' or city == '亳州' or city == '池州' or
  84. city == '宣城' or city == '广德' or city == '桐城' or city == '界首'):
  85. province = '安徽'
  86. elif (city == '成都' or city == '阆中' or city == '内江' or city == '彭州' or
  87. city == '南充' or city == '自贡' or city == '攀枝花' or city == '泸州' or
  88. city == '德阳' or city == '绵阳' or city == '广元' or city == '遂宁' or
  89. city == '乐山' or city == '眉山' or city == '宜宾' or city == '广安' or
  90. city == '达州' or city == '雅安' or city == '巴中' or city == '资阳' or
  91. city == '江油'):
  92. province = '四川'
  93. elif (city == '盖州' or city == '营口' or city == '沈阳' or city == '大连' or
  94. city == '鞍山' or city == '抚顺' or city == '本溪' or city == '丹东' or
  95. city == '锦州' or city == '阜新' or city == '辽阳' or city == '盘锦' or
  96. city == '铁岭' or city == '朝阳' or city == '葫芦岛' or city == '海城' or
  97. city == '灯塔'):
  98. province = '辽宁'
  99. elif (city == '南京' or city == '无锡' or city == '苏州' or city == '徐州' or
  100. city == '宿迁' or city == '淮安' or city == '泰州' or city == '扬州' or
  101. city == '盐城' or city == '连云港' or city == '丹阳' or city == '镇江' or
  102. city == '东台' or city == '江阴' or city == '靖江' or city == '昆山' or
  103. city == '启东' or city == '南通' or city == '扬中' or city == '宜兴' or
  104. city == '张家港' or city == '常州' or city == '兴化' or city== '太仓' or
  105. city == '泰兴' or city == '新沂' or city == '海安' or city == '溧阳' or
  106. city == '邳州' or city == '常熟'):
  107. province = '江苏'
  108. elif (city == '济南' or city == '滕州' or city == '枣庄' or city == '青岛' or
  109. city == '淄博' or city == '东营' or city == '烟台' or city == '潍坊' or
  110. city == '济宁' or city == '泰安' or city == '威海' or city == '日照' or
  111. city == '临沂' or city == '德州' or city == '聊城' or city == '滨州' or
  112. city == '菏泽' or city == '曲阜'):
  113. province = '山东'
  114. elif (city == '杭州' or city == '宁波' or city == '温州' or city == '嘉兴' or
  115. city == '湖州' or city == '绍兴' or city == '金华' or city == '衢州' or
  116. city == '舟山' or city == '台州' or city == '丽水' or city == '义乌' or
  117. city == '桐乡' or city == '余姚' or city == '慈溪'):
  118. province = '浙江'
  119. elif (city == '长沙' or city == '衡阳' or city == '吉首' or city == '株洲' or
  120. city == '湘潭' or city == '邵阳' or city == '岳阳' or city == '常德' or
  121. city == '张家界' or city == '益阳' or city == '郴州' or city == '永州' or
  122. city == '怀化' or city == '娄底' or city == '冷水江'):
  123. province = '湖南'
  124. elif (city == '厦门' or city == '福州' or city == '晋江' or city == '泉州' or
  125. city == '永安' or city == '三明' or city == '石狮' or city == '福安' or
  126. city == '宁德' or city == '莆田' or city == '漳州' or city == '南平' or
  127. city == '龙岩' or city == '福清' or city == '建瓯' or city == '南安'):
  128. province = '福建'
  129. elif (city == '郑州' or city == '禹州' or city == '南阳' or city == '永城' or
  130. city == '洛阳' or city == '焦作' or city == '济源' or city == '汝州' or
  131. city == '平顶山' or city == '商丘' or city == '新密' or city == '禹州' or
  132. city == '许昌' or city == '开封' or city == '安阳' or city == '鹤壁' or
  133. city == '新乡' or city == '濮阳' or city == '漯河' or city == '三门峡' or
  134. city == '周口' or city == '驻马店' or city == '卫辉' or city == '灵宝' or
  135. city == '辉县' or city == '项城' or city == '林州' or city == '荥阳' or
  136. city == '巩义'):
  137. province = '河南'
  138. elif (city == '石家庄' or city == '唐山' or city == '秦皇岛' or city == '邯郸' or
  139. city == '廊坊' or city == '邢台' or city == '保定' or city == '张家口' or
  140. city == '承德' or city == '沧州' or city == '衡水' or city == '南宫' or
  141. city == '新乐' or city == '河间' or city == '辛集' or city == '迁安' or
  142. city == '定州'):
  143. province = '河北'
  144. elif (city == '太原' or city == '长治' or city == '大同' or city == '阳泉' or
  145. city == '晋城' or city == '朔州' or city == '晋中' or city == '运城' or
  146. city == '忻州' or city == '临汾' or city == '吕梁' or city == '汾阳' or
  147. city == '介休'):
  148. province = '山西'
  149. elif (city == '呼和浩特' or city == '包头' or city == '乌海' or city == '赤峰' or
  150. city == '通辽' or city == '鄂尔多斯' or city == '呼伦贝尔' or city == '巴彦淖尔' or
  151. city == '乌兰察布'):
  152. province = '内蒙古'
  153. elif (city == '武汉' or city == '潜江' or city == '当阳' or city == '大冶' or
  154. city == '黄石' or city == '当阳' or city == '宜昌' or city == '汉川' or
  155. city == '孝感' or city == '十堰' or city == '襄阳' or city == '鄂州' or
  156. city == '荆门' or city == '荆州' or city == '黄冈' or city == '咸宁' or
  157. city == '随州' or city == '恩施' or city == '利川' or city == '仙桃' or
  158. city == '枣阳' or city == '潜江' or city == '应城'):
  159. province = '湖北'
  160. elif (city == '西安' or city == '铜川' or city == '宝鸡' or city == '咸阳' or
  161. city == '渭南' or city == '延安' or city == '汉中' or city == '榆林' or
  162. city == '安康' or city == '商洛'):
  163. province = '陕西'
  164. elif (city == '南昌' or city == '景德镇' or city == '萍乡' or city == '九江' or
  165. city == '新余' or city == '鹰潭' or city == '赣州' or city == '吉安' or
  166. city == '宜春' or city == '抚州' or city == '上饶' or city == '樟树' or
  167. city == '瑞金'):
  168. province = '江西'
  169. elif (city == '哈尔滨' or city == '齐齐哈尔' or city == '鸡西' or city == '鹤岗' or
  170. city == '双鸭山' or city == '大庆' or city == '伊春' or city == '佳木斯' or
  171. city == '七台河' or city == '牡丹江' or city == '黑河' or city == '绥化' or
  172. city == '海林'):
  173. province = '黑龙江'
  174. elif (city == '长春' or city == '梅河口' or city == '通化' or city == '图们' or
  175. city == '吉林' or city == '四平' or city == '辽源' or city == '白山' or
  176. city == '松原' or city == '白城' or city == '延吉'):
  177. province = '吉林'
  178. elif (city == '弥勒' or city == '昆明' or city == '曲靖' or city == '玉溪' or
  179. city == '保山' or city == '昭通' or city == '丽江' or city == '普洱' or
  180. city == '临沧' or city == '大理' or city == '楚雄'):
  181. province = '云南'
  182. elif (city == '贵阳' or city == '六盘水' or city == '遵义' or city == '安顺' or
  183. city == '毕节' or city == '铜仁'):
  184. province = '贵州'
  185. elif (city == '乌鲁木齐' or city == '克拉玛依' or city == '吐鲁番' or city == '哈密'):
  186. province = '新疆'
  187. elif (city == '兰州' or city == '嘉峪关' or city == '金昌' or city == '白银' or
  188. city == '天水' or city == '武威' or city == '张掖' or city == '平凉' or
  189. city == '酒泉' or city == '庆阳' or city == '定西' or city == '陇南'):
  190. province = '甘肃'
  191. elif city == '西宁' or city == '海东':
  192. province = '青海'
  193. elif (city == '银川' or city == '石嘴山' or city == '吴忠' or city == '固原' or city == '中卫'):
  194. province = '宁夏'
  195. elif (city == '南宁' or city == '玉林' or city == '柳州' or city == '防城港' or
  196. city == '桂平' or city == '贵港' or city == '桂林' or city == '梧州' or
  197. city == '北海' or city == '钦州' or city == '百色' or city == '贺州' or
  198. city == '河池' or city == '来宾' or city == '崇左' or city == '岑溪' or
  199. city == '北流'):
  200. province = '广西'
  201. else :
  202. city = ''
  203. #对部分县级市或代管市进行城市值的变更:
  204. if province == '广东' and city == '普宁':
  205. city = '揭阳'
  206. elif province == '福建' and city == '晋江':
  207. city = '泉州'
  208. elif province == '福建' and city == '永安':
  209. city = '三明'
  210. elif province == '广东' and city == '四会':
  211. city = '肇庆'
  212. elif province == '广东' and city == '英德':
  213. city = '清远'
  214. elif province == '广西' and city == '桂平':
  215. city = '贵港'
  216. elif province == '河南' and city == '济源':
  217. city = '河南省直辖县'
  218. elif province == '河南' and city == '汝州':
  219. city = '平顶山'
  220. elif province == '河南' and city == '永城':
  221. city = '商丘'
  222. elif province == '湖北' and city == '大冶':
  223. city = '黄石'
  224. elif province == '湖北' and city == '当阳':
  225. city = '宜昌'
  226. elif province == '湖北' and city == '汉川':
  227. city = '孝感'
  228. elif province == '吉林' and city == '梅河口':
  229. city = '通化'
  230. elif province == '江苏' and city == '丹阳':
  231. city = '镇江'
  232. elif province == '江苏' and city == '东台':
  233. city = '盐城'
  234. elif province == '江苏' and city == '江阴':
  235. city = '无锡'
  236. elif province == '江苏' and city == '靖江':
  237. city = '泰州'
  238. elif province == '江苏' and city == '昆山':
  239. city = '苏州'
  240. elif province == '江苏' and city == '启东':
  241. city = '南通'
  242. elif province == '江苏' and city == '扬中':
  243. city = '镇江'
  244. elif province == '江苏' and city == '宜兴':
  245. city = '无锡'
  246. elif province == '江苏' and city == '张家港':
  247. city = '苏州'
  248. elif province == '辽宁' and city == '盖州':
  249. city = '营口'
  250. elif province == '山东' and city == '滕州':
  251. city = '枣庄'
  252. elif province == '云南' and city == '弥勒':
  253. city = '红河哈尼族彝族自治州'
  254. elif province == '河南' and city == '新密':
  255. city = '郑州'
  256. elif province == '河南' and city == '禹州':
  257. city = '许昌'
  258. elif province == '广东' and city == '化州':
  259. city = '茂名'
  260. elif province == '福建' and city == '石狮':
  261. city = '泉州'
  262. elif province == '湖南' and city == '吉首':
  263. city = '湘西土家族苗族自治州'
  264. elif province == '福建' and city == '福安':
  265. city = '宁德'
  266. elif province == '广东' and city == '阳春':
  267. city = '阳江'
  268. elif province == '吉林' and city == '图们':
  269. city = '延边朝鲜族自治州'
  270. elif province == '广东' and city == '兴宁':
  271. city = '梅州'
  272. elif province == '广东' and city == '台山':
  273. city = '江门'
  274. elif province == '广东' and city == '开平':
  275. city = '江门'
  276. elif province == '广东' and city == '陆丰':
  277. city = '汕尾'
  278. elif province == '广东' and city == '高州':
  279. city = '茂名'
  280. elif province == '安徽' and city == '天长':
  281. city = '滁州'
  282. elif province == '安徽' and city == '广德':
  283. city = '宣城'
  284. elif province == '安徽' and city == '桐城':
  285. city = '安庆'
  286. elif province == '安徽' and city == '界首':
  287. city = '阜阳'
  288. elif province == '四川' and city == '彭州':
  289. city = '成都'
  290. elif province == '四川' and city == '阆中':
  291. city = '南充'
  292. elif province == '辽宁' and city == '海城':
  293. city = '鞍山'
  294. elif province == '辽宁' and city == '灯塔':
  295. city = '辽阳'
  296. elif province == '江苏' and city == '兴化':
  297. city = '泰州'
  298. elif province == '江苏' and city == '太仓':
  299. city = '苏州'
  300. elif province == '江苏' and city == '泰兴':
  301. city = '泰州'
  302. elif province == '江苏' and city == '新沂':
  303. city = '徐州'
  304. elif province == '江苏' and city == '海安':
  305. city = '南通'
  306. elif province == '江苏' and city == '溧阳':
  307. city = '常州'
  308. elif province == '江苏' and city == '邳州':
  309. city = '徐州'
  310. elif province == '浙江' and city == '义乌':
  311. city = '金华'
  312. elif province == '浙江' and city == '桐乡':
  313. city = '嘉兴'
  314. elif province == '浙江' and city == '余姚':
  315. city = '宁波'
  316. elif province == '河南' and city == '卫辉':
  317. city = '新乡'
  318. elif province == '河南' and city == '灵宝':
  319. city = '三门峡'
  320. elif province == '河南' and city == '辉县':
  321. city = '新乡'
  322. elif province == '河南' and city == '项城':
  323. city = '周口'
  324. elif province == '河南' and city == '林州':
  325. city = '安阳'
  326. elif province == '河北' and city == '南宫':
  327. city = '邢台'
  328. elif province == '河北' and city == '新乐':
  329. city = '石家庄'
  330. elif province == '河北' and city == '河间':
  331. city = '沧州'
  332. elif province == '河北' and city == '辛集':
  333. city = '石家庄'
  334. elif province == '河北' and city == '迁安':
  335. city = '唐山'
  336. elif province == '山西' and city == '汾阳':
  337. city = '吕梁'
  338. elif province == '湖北' and city == '恩施':
  339. city = '恩施土家族苗族自治州'
  340. elif province == '湖北' and city == '利川':
  341. city = '恩施土家族苗族自治州'
  342. elif province == '湖北' and city == '仙桃':
  343. city = '湖北省直辖县'
  344. elif province == '湖北' and city == '大治':
  345. city = '黄石'
  346. elif province == '湖北' and city == '枣阳':
  347. city = '襄阳'
  348. elif province == '湖北' and city == '潜江':
  349. city = '湖北省直辖县'
  350. elif province == '江西' and city == '樟树':
  351. city = '宜春'
  352. elif province == '江西' and city == '瑞金':
  353. city = '赣州'
  354. elif province == '吉林' and city == '延吉':
  355. city = '延边朝鲜族自治州'
  356. elif province == '云南' and city == '大理':
  357. city = '大理白族自治州'
  358. elif province == '云南' and city == '楚雄':
  359. city = '楚雄彝族自治州'
  360. elif province == '湖南' and city == '冷水江':
  361. city = '娄底'
  362. elif province == '河南' and city == '荥阳':
  363. city = '郑州'
  364. elif province == '广东' and city == '雷州':
  365. city = '湛江'
  366. elif province == '湖北' and city == '应城':
  367. city = '孝感'
  368. elif province == '山东' and city == '曲阜':
  369. city = '济宁'
  370. elif province == '广西' and city == '岑溪':
  371. city = '梧州'
  372. elif province == '山西' and city == '介休':
  373. city = '晋中'
  374. elif province == '广西' and city == '北流':
  375. city = '玉林'
  376. elif province == '河南' and city == '巩义':
  377. city = '郑州'
  378. elif province == '福建' and city == '福清':
  379. city = '福州'
  380. elif province == '广东' and city == '南雄':
  381. city = '韶关'
  382. elif province == '黑龙江' and city == '海林':
  383. city = '牡丹江'
  384. elif province == '河北' and city == '定州':
  385. city = '保定'
  386. elif province == '浙江' and city == '宁波':
  387. city = '慈溪'
  388. elif province == '福建' and city == '建瓯':
  389. city = '南平'
  390. elif province == '福建' and city == '南安':
  391. city = '泉州'
  392. elif province == '江苏' and city == '常熟':
  393. city = '苏州'
  394. elif province == '四川' and city == '江油':
  395. city = '绵阳'
  396. #将省市的值写入到数据表中
  397. update_sql = """
  398. UPDATE mt_shop_info_middle
  399. SET province = %s,
  400. city = %s
  401. WHERE id = %s
  402. """
  403. cur.execute(update_sql, (province, city, addr_id))
  404. conn.commit()
  405. if __name__ == '__main__':
  406. main()