Pythonの製造気象クエリソフトウェア[パイソン]戦闘を学ぶことができます

 

ここに画像を挿入説明

使用PyQt5天気問い合わせソフトウェアを作成する方法:以前は、共有数PyQt5を使用するには、どのように国民が推測ゲーム、タイマーを作る、この時間は、私たちが学ぶことを続けています。
マイクロチャネルパブリック番号に、ソースコードやEXEファイルを得るためにPython高效编程舞台裏返信:  天气
PS注:多くの人々は、Pythonのプロセスを放棄する1つの簡単な答えがない、心配するさまざまな問題が発生します学びます。七Yiyiの九百七十から七バー、次の5(デジタル同音異義語)変換を見つけることができますが、古いドライバが解決する問題を持っていない、最新の本当のPythonチュートリアルもあります:小さなシリーズはPythonのフルスタックの無料Q&スカート建てこのため、一緒に相互の監督と共通の進歩の下で,,非無料!

開発環境

  • python3
  • PyQt5
  • リクエスト

準備

まずから、別の都市に対応する気象コードを取得https://www.heweather.com/documents/city.html  、我々は最初のデータを前処理しなければならない、csvファイルを取得するためにcsvファイルをダウンロードする(エンド・テキスト、CSVファイルを取得)作品。

import pandas as pd
# 将下载好的文件命名为 'city_code.csv',并删除 header
file = pd.read_csv('city_code.csv') # 选取需要的两列信息 file = file.loc[:,['City_ID', 'City_CN']] # 读取前五行信息 file.head() 
 
ここに画像を挿入説明
# 匹配 City_ID 中的数字
def convert(x): pat = re.compile('(\d+)') return pat.search(x).group() file['City_ID_map'] = file['City_ID'].map(convert) # 建立城市与代码之间的映射关系 def city2id(file): code_dict = {} key = 'City_CN' value = 'City_ID_map' for k, v in zip(file[key], file[value]): code_dict[k] = v return code_dict code_dict = city2id(file) # 将所得的字典数据存储为 txt 文件 import json filename = 'city_code.txt' with open(filename, 'w') as f: json.dump(code_dict, f) 

辞書はTXTファイルとして格納された後、我々は唯一のファイルを読み、[辞書を取得する必要があります:

with open(filename, 'r') as f: text = json.load(f) 

あなたはこれらのデータを扱うための努力を無駄にしたくない場合は、直接エンドにcity_code.txtファイルを提供するために使用することができます。

Ui 设计

使用のQt Designerは、我々は以下のインターフェースを設計することができます。

 
ここに画像を挿入説明

 

あなたがインターフェイスをデザインしたくない場合は、私が直接Ui_weather.py提供されたファイルをインポートすることができます。

メインロジック:

「:APIインターフェイスは、我々は、これを使用http://wthrcdn.etouch.cn/weather_mini?citykey=、{コード}」は、常州都市コードとして都市コード、前に処理されるコード:101 191 101。変数コードを交換し、サイトには、いくつかのJSONファイル形式のための私達に戻りました。

 
ここに画像を挿入説明

この文をJSONによると、我々は簡単に必要な情報を抽出することができます。

# 天气情况
data = info_json['data'] city = f"城市:{data['city']}\n" today = data['forecast'][0] date = f"日期:{today['date']}\n" now = f"实时温度:{data['wendu']}度\n" temperature = f"温度:{today['high']} {today['low']}\n" fengxiang = f"风向:{today['fengxiang']}\n" type = f"天气:{today['type']}\n" tips = f"贴士:{data['ganmao']}\n" 

もちろん、我々が最初にこのJSONコードを取得する方法を取得し、要求を使用する必要があります。

def query_weather(code): # 模板网页 html = f'http://wthrcdn.etouch.cn/weather_mini?citykey={code}' # 向网页发起请求 try: info = requests.get(html) info.encoding = 'utf-8' # 捕获 ConnectinError 异常 except requests.ConnectionError: raise # 将获取的数据转换为 json 格式 try: info_json = info.json() # 转换失败提示无法查询 except JSONDecodeError: return '无法查询' 

ここでは、この記事の中で使用される制御方法をご紹介します:

# 将 textEdit 设置为只读模式
self.textEdit.setReadOnly(True) # 将鼠标焦点放在 lineEdit 编辑栏里 self.lineEdit.setFocus() # 获取 lineEdit 中的文本 city = self.lineEdit.text() # 设置文本 self.textEdit.setText(info) # 清空文本 self.lineEdit.clear() 

クエリの設定のショートカットボタン:

def keyPressEvent(self, e): # 设置快捷键 if e.key() == Qt.Key_Return: self.queryWeather() 

最後に、我々はpyInstallerの-w weather.pyパッケージ・アプリケーションを使用していますが、完成したパックに覚えて、DIST /気象フォルダにコピーcity_code.txt、それ以外のプログラムを実行することはできません。

上記ソースコードを参照して、この記事の全内容、および詳細です。ソースコードとexeファイルのファイルを取得するには注意:多くの人々は、Pythonのプロセスを放棄する1つの簡単な答えがない、心配するさまざまな問題が発生します学びます。七Yiyiの九百七十から七バー、次の5(デジタル同音異義語)変換を見つけることができますが、古いドライバが解決する問題を持っていない、最新の本当のPythonチュートリアルもあります:小さなシリーズはPythonのフルスタックの無料Q&スカート建てこのため、一緒に相互の監督と共通の進歩の下で,,非無料!

自分のアイデアを持つネットワークから、この記事内のテキストや画像は、だけでなく、任意の商業目的のために、元の作者に属し、交換を学ぶために、どんな質問ならば、治療のためにお問い合わせください。

 
 

おすすめ

転載: www.cnblogs.com/chengxuyuanaa/p/12531206.html