ホームページ >バックエンド開発 >Python チュートリアル >python3で実装されるWeb側json通信プロトコルの詳細説明
この記事では主に Python3 で実装された Web 側の JSON 通信プロトコルを紹介します。興味のある方は参考にしてください。
以前は python3 を使用して tcp プロトコルを実装していましたが、その後 http プロトコル通信を実装しました。今日、会社は機能的な自動テスト システムを作成したいと考えています。 json 形式のコードは次のとおりです。 簡単に説明すると、サーバーとの通信は通常 2 つの部分に分かれており、1 つは get プロトコルで、もう 1 つは post プロトコルです。 post プロトコルは実際にデータ データを使用し、プログラムはそのデータに直接アクセスし、タイプを自動的に識別します。
書き込みプロセス中に 3 つの問題が発生しました:
1 post プロトコルの実装時にエラーが発生しました
大まかに言えば、問題は utf-8 形式に変換することです。 (data , 'utf8'),
2 取得した json データに中国語が含まれていると、エンコーディングの問題が発生しました。json をロードするときに utf8 を呼び出すだけです。 loads( rawtext.decode('utf8'))
3 json を出力すると、非常に長い文字列が表示されます
長い文字列は読むのが非常に苦痛で、json 内のオブジェクト間の関係を明確に見ることはできません。インターネットでは、問題を解決するにはどのような json.tool メソッドを使用する必要があると言われていますが、それはコマンドライン用であり、デバッグプロセス中に直接出力したいと考えています
次のコードを使用します。 json.dumps(jsonStr, sort_keys=False, ensure_ascii = False, indent=2))、ここでは、ensure_ascii が False である必要があることに注意する必要があります。そうでない場合、中国語が含まれている場合、0xx か何かが表示されます。indent=2 sort_keys は、この json を並べ替える必要がないことを意味します
#!/usr/bin/evn python3 #coding=utf-8 # 针对web端json协议的通信库,通信协议为json,传出的data为json格式,接收的数据也是json格式 # 外界调用时可先初始化web_json类,如下所示: # get调用 # web = web_json("http://baidu.com/") # params = "abcd/select/100000?userID=1234&groupID=79" # web.url_get(params) # # post调用 # web = web_json("http://baidu.com/") # params = "abcd/select/100000" # data = '{"name": "jack", "id": "1"}' # web.url_post(params, data) from urllib.request import urlopen from urllib.parse import quote import json class web_json: def __init__(self, base_url): self.base_url = base_url def get_url_data(self, params, data): web = urlopen(self.base_url + params, data) print (web.url) print ("status: " , web.status) rawtext = web.read() jsonStr = json.loads(rawtext.decode('utf8')) print (json.dumps(jsonStr, sort_keys=False, ensure_ascii= False, indent=2)) return jsonStr # get方法 def url_get(self, params): return self.get_url_data(params, None) # post方法 def url_post(self, params, data): data=bytes(data, 'utf8') return self.get_url_data(params, data)
以上が、皆さんの学習に役立つことを願っています。誰もが PHP 中国語 Web サイトをサポートするでしょう。
python3 で実装された Web 側の JSON 通信プロトコルに関する詳細な記事については、PHP 中国語 Web サイトに注目してください。