이 글은 주로 python3으로 구현된 웹사이드 json 통신 프로토콜을 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.
이전에는 python3을 사용하여 tcp 프로토콜을 구현했고, 나중에는 http 프로토콜 통신을 구현해 보았습니다.
한동안 작업한 끝에 회사에서는 기능적인 자동 테스트 시스템을 만들고 싶습니다. 오후에 json 형식이 구현이 더 간단하다는 것을 알았습니다. 코드는 다음과 같습니다. 간단히 설명하면 서버와의 통신은 일반적으로 두 부분으로 나뉘는데, 하나는 get 프로토콜이고 다른 하나는 post 프로토콜입니다.
get 프로토콜은 매우 간단하며 직접 액세스할 수 있습니다. post 프로토콜은 실제로 데이터가 사용될 때 프로그램이 자동으로 유형을 식별합니다.
작성 과정에서 3가지 문제가 발생했습니다.
1 포스트 프로토콜을 구현할 때 오류가 발생했습니다.
일반적으로 데이터 형식의 문제는 매우 쉽습니다. 간단하게 utf-8 형식으로 변환: bytes(data, 'utf8') ,
2
내부에서 중국어를 만날 때 얻은 json 데이터에 인코딩 문제가 발생하여 0xaa0xbb0xcc0xdd가 표시되는 것을 발견했습니다. 이렇게 인코딩하려면 json을 로드할 때 utf8을 호출하세요. 다음 코드를 사용하세요: json.loads(rawtext.decode('utf8'))
3 json을 인쇄하면 매우 긴 문자열이 나타납니다. >
긴 문자열을 읽는 것은 매우 고통스럽고 json의 개체 간의 관계를 명확하게 볼 수 없습니다. 문제를 해결하기 위한 json.tool 메서드가 인터넷에 있지만 이는 명령줄에 대한 것입니다. 디버깅 프로세스 중에도 직접 인쇄하고 싶은 경우 에서는 print(json.dumps(jsonStr, sort_keys=False, verify_ascii= False, indent=2)) 코드를 사용합니다. 여기서는 verify_ascii가 False여야 한다는 점에 유의해야 합니다. 그렇지 않으면 에 중국어가 있는 경우 표시되는 내용은 0xx 정도입니다. indent=2는 형식화된 json 표시를 의미하고, sort_keys는 이 json이 필요하지 않음을 의미합니다. sorted
#!/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)

PythonArraysSupportVariousOperations : 1) SlicingExtractsSubsets, 2) 추가/확장 어드먼트, 3) 삽입 값 삽입 ATSpecificPositions, 4) retingdeletesElements, 5) 분류/ReversingChangesOrder 및 6) ListsompectionScreateNewListSbasedOnsistin

NumpyArraysareSentialplosplicationSefficationSefficientNumericalcomputationsanddatamanipulation. Theyarcrucialindatascience, MachineLearning, Physics, Engineering 및 Financeduetotheiribility에 대한 handlarge-scaledataefficivally. forexample, Infinancialanyaly

UseanArray.ArrayOveralistInpyThonWhendealingwithhomogeneousData, Performance-CriticalCode, OrinterFacingwithCcode.1) HomogeneousData : ArraysSaveMemorywithtypepletement.2) Performance-CriticalCode : arraysofferbetterporcomanceFornumericalOperations.3) Interf

아니요, NOTALLLISTOPERATIONARESUPPORTEDBYARRARES, andVICEVERSA.1) ArraySDONOTSUPPORTDYNAMICOPERATIONSLIKEPENDORINSERTWITHUTRESIGING, WHITHIMPACTSPERFORMANCE.2) ListSDONOTEECONSTANTTIMECOMPLEXITEFORDITITICCESSLIKEARRAYSDO.

ToaccesselementsInapyThonlist, 사용 인덱싱, 부정적인 인덱싱, 슬라이스, 오리 화.

Arraysinpython, 특히 비밀 복구를위한 ArecrucialInscientificcomputing.1) theaRearedFornumericalOperations, DataAnalysis 및 MachinELearning.2) Numpy'SimplementationIncensuressuressurations thanpythonlists.3) arraysenablequick

Pyenv, Venv 및 Anaconda를 사용하여 다양한 Python 버전을 관리 할 수 있습니다. 1) PYENV를 사용하여 여러 Python 버전을 관리합니다. Pyenv를 설치하고 글로벌 및 로컬 버전을 설정하십시오. 2) VENV를 사용하여 프로젝트 종속성을 분리하기 위해 가상 환경을 만듭니다. 3) Anaconda를 사용하여 데이터 과학 프로젝트에서 Python 버전을 관리하십시오. 4) 시스템 수준의 작업을 위해 시스템 파이썬을 유지하십시오. 이러한 도구와 전략을 통해 다양한 버전의 Python을 효과적으로 관리하여 프로젝트의 원활한 실행을 보장 할 수 있습니다.

Numpyarrayshaveseveraladvantagesstandardpythonarrays : 1) thearemuchfasterduetoc 기반 간증, 2) thearemorememory-refficient, 특히 withlargedatasets 및 3) wepferoptizedformationsformationstaticaloperations, 만들기, 만들기


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
