Python 收货地址自动识别(使用接口)

2021/6/2 1:20:55

本文主要是介绍Python 收货地址自动识别(使用接口),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#准备工具,http://www.flagyun.com/developer.html#queryaddress 注册并获取接口appkey


import tkinter as tk
import json
import requests
import urllib
import ctypes


#隐藏控制台窗口

whnd = ctypes.windll.kernel32.GetConsoleWindow()
if whnd != 0:
    ctypes.windll.user32.ShowWindow(whnd, 0)
    ctypes.windll.kernel32.CloseHandle(whnd)



#处理接口请求并返回指定参数
def run( Text):
    url = 'https://open.flagyun.com/queryaddress.ashx'
    #heads = {'Content-type': 'application/x-www-form-urlencoded'}

    # 封装传入的参数
    m_post_data = {}
    m_post_data['appkey'] = '替换注册的appkey'    #这里的key使用提供注册的的appkey!!!!
    m_post_data['address'] = urllib.parse.quote(Text)  #使用汉字编码
    url = url + '?' + 'appkey=这里输入appkey&address=' + m_post_data['address']  #请求的参数进行拼接 这里需要更换appkey在进行拼接!!!! 
    data= ''
    uuu = requests.post(url,data)    #请求数据并返回
    d = json.loads(uuu.text)

    re_request = d['resultList']
    if  len(re_request) == 0  :
        #messagebox.showinfo(title='提示', message='参数address过短,无需解析!')
        return  'none'
    else:
        f = d['resultList']
        g = f[0]['province']
        h = f[0]['city']
        i = f[0]['area']
        j = f[0]['details']
        k = f[0]['name']
        l = f[0]['mobile']
        strcat = g+'\t' + h +'\t' + i +'\t' +  j + '\t' + k + '\t' + l + '\n'
        return  strcat



# 处理後的数据写入电子表格中
def Write_File(Text):
    infile = open('Data.xls', 'a+')
    infile.write(Text)
    infile.close()





def not_auto_run():
    str = m_Show_Text.get()
    Write_File(str)



# 将未处理的数据存入缓冲区
def Read_File():
    outfile = open('config.txt', 'r')
    StrList = {}
    for line in outfile.readlines():
        StrList[line] = line
    else:
        #messagebox.showinfo(title='提示', message='数据处理完毕!')
        return StrList



#配置文件读取,自动处理
def auto_run():
    List = Read_File()
    for index in List:
        str = run(index)
        if str== 'none':    #判断是否有数据为空,否则不予处理!
            continue
        else:
            Write_File(str)


#界面展示
top = tk.Tk()
top.geometry('800x600')


m_Input_Edit= tk.Entry(top, width = 100, fg='red')
m_Input_Edit.pack()


m_Show_Text=tk.Entry(top,width = 100)
m_Show_Text.pack()


#处理数据
def  get():
    str = m_Input_Edit.get()  #获取地址
    tospringlite = run(str)
    m_Show_Text.delete(0, 1024)
    m_Show_Text.insert(0, tospringlite)
    m_Input_Edit.delete(0, 1024)

B = tk.Button(top, text ="数据处理",command = get)
B.pack()


run_button = tk.Button(top, text ="手动处理,将处理後的文件放入指定文件中",command = not_auto_run)
run_button.pack()



#自动处理按钮
autorun_button = tk.Button(top, text ="数据自动处理",command = auto_run)
autorun_button.pack()


top.mainloop()

  



这篇关于Python 收货地址自动识别(使用接口)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程