


Detaillierte Erläuterung des von Python3 implementierten webseitigen JSON-Kommunikationsprotokolls
In diesem Artikel wird hauptsächlich das von Python3 implementierte webseitige JSON-Kommunikationsprotokoll vorgestellt. Es hat einen gewissen Referenzwert.
Ich habe zuvor Python3 verwendet, um das TCP-Protokoll zu implementieren. Heute möchte das Unternehmen ein funktionierendes automatisches Testsystem erstellen.
Nachdem ich eine Weile daran gearbeitet habe Am Nachmittag stellte ich fest, dass die Implementierung des JSON-Formats einfacher sein kann. Der Code lautet wie folgt: Um es kurz zu erklären: Die Kommunikation mit dem Server ist im Allgemeinen in zwei Teile unterteilt, einen ist das Get-Protokoll und der andere ist das Post-Protokoll.
Das Get-Protokoll ist sehr einfach und kann direkt auf das Post-Protokoll zugegriffen werden. Wenn Daten verwendet werden, erkennt das Programm tatsächlich den Typ.
Ich bin während des Schreibvorgangs auf 3 Probleme gestoßen:
1 Bei der Implementierung des Post-Protokolls ist ein Fehler aufgetreten
Im Allgemeinen ist das Problem des Datenformats sehr einfach Lösen. Einfach, in das UTF-8-Format konvertieren: bytes(data, 'utf8') ,
2 Die erhaltenen JSON-Daten stießen auf Kodierungsprobleme, als sie auf Chinesisch in
stießen und stellten fest, dass 0xaa0xbb0xcc0xdd angezeigt wurde Rufen Sie zum Codieren einfach utf8 auf, wenn Sie JSON laden. Verwenden Sie diesen Code: json.loads(rawtext.decode('utf8'))
3 Beim Ausdrucken von JSON wird eine sehr lange Zeichenfolge angezeigt >
Es ist sehr schmerzhaft, lange Zeichenfolgen zu lesen, und ich kann die Beziehung zwischen den Objekten in JSON nicht klar erkennen. Es gibt einige json.tool-Methoden im Internet, um das Problem zu lösen, aber das ist für die Befehlszeile. Ich bin hier Während des Debugging-Prozesses möchten Sie es trotzdem direkt ausdrucken verwendet den folgenden Code: print (json.dumps(jsonStr, sort_keys=False,sure_ascii=False,indent=2)). Hier ist zu beachten, dass „sure_ascii“ „False“ sein muss, andernfalls „Wenn Chinesisch drin ist“ , sehen Sie 0xx oder so, indent=2 bedeutet formatierte JSON-Anzeige, sort_keys bedeutet, dass dieser JSON nicht sein muss sortiert
#!/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)

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Fastapi ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.
