Json은 가볍고 쓰기 쉬운 특성으로 인해 일반적으로 사용되는 데이터 교환 구조입니다. 다음 글에서는 Python의 Json 파싱 관련 정보를 주로 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.
JSON 소개
JSON(JavaScript Object Notation)은 가벼운 데이터 교환 형식입니다. 이는 JavaScript(표준 ECMA-262 3판 - 1999년 12월)의 하위 집합을 기반으로 합니다. JSON은 완전히 언어 독립적인 텍스트 형식을 사용하지만 C 언어 계열(C, C++, C#, Java, JavaScript, Perl, Python 등 포함)과 유사한 규칙도 사용합니다. 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다. 사람이 읽고 쓰기 쉽고, 기계가 구문 분석하고 생성하기도 쉽습니다.
형식은 일반적으로 다음과 같습니다.
객체는 "이름/값 쌍"의 순서가 지정되지 않은 모음입니다. 객체는 "{"(왼쪽 대괄호)로 시작하고 "}"(오른쪽 대괄호)로 끝납니다. 각 "이름" 뒤에는 ":"(콜론)이 옵니다. "이름/값" 쌍은 ","(쉼표)로 구분됩니다.
예:
{"b": "Hello", "c": null, "a": true}
해당 값은 문자열, 숫자, true, false, null, 개체 또는 큰따옴표(배열)로 묶인 배열일 수 있습니다. 이러한 구조는 중첩될 수 있습니다.
값은 문자열, 숫자, true, false, null, 개체 또는 큰따옴표로 묶인 배열일 수 있습니다. 이러한 구조는 중첩될 수 있습니다.
Python을 사용하여 Json 인코딩 및 구문 분석
Python에는 json 작업을 완료하는 데 도움이 되는 내장 json 패키지가 있습니다.
Python의 사전 구조를 json으로 내보내려면 json.dumps()
를 사용하세요. json을 Python의 사전 구조로 읽으려면 json.loads()
를 사용하세요. json.dumps()
,将json读成Python的字典结构,使用json.loads()
。
如果不是针对string操作而是对文件操作,分别使用json.load()
函数和json.dump()
函数。
import json data = { 'name' : 'ACME', 'shares' : 100, 'price' : 542.23 } json_str = json.dumps(data) data = json.loads(json_str) # Writing JSON data to file with open('data.json', 'w') as f: json.dump(data, f) # Reading data back with open('data.json', 'r') as f: data = json.load(f)
默认的类型对应如下:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
其他数据类型与Json之间的编码和解码
一般来说,Python对json的解析是list或dict之间的操作,如果需要其他类型与json之间转换,就需要object_hook参数。先定义一个类,将类的字典初始化成json的key-value键值对。这样,json的参数就变成了类的属性。
将一个JSON字典转换为一个Python对象Python
>>> class JSONObject: ... def __init__(self, d): ... self.__dict__ = d ... >>> >>> data = json.loads(s, object_hook=JSONObject) >>> data.name 'ACME' >>> data.shares 50 >>> data.price 490.1
还可以通过指定“函数”来进行转换。
用函数来指定序列化的方法,即将对象的“属性-值”对变成字典对,函数返回一个字典,然后json.dumps
会格式化这个字典。
如果是通过函数将json变成对象,首先获得类名,然后通过__new__
json.load()
함수와 json.dump()
함수를 각각 사용하세요. def serialize_instance(obj): d = { '__classname__' : type(obj).__name__ } d.update(vars(obj)) return d # Dictionary mapping names to known classes classes = { 'Point' : Point } def unserialize_object(d): clsname = d.pop('__classname__', None) if clsname: cls = classes[clsname] obj = cls.__new__(cls) # Make instance without calling __init__ for key, value in d.items(): setattr(obj, key, value) return obj else: return d
기본 유형은 다음과 같습니다.
JSON | Python |
---|---|
객체 | dict |
배열 | 목록 |
문자열 | 유니코드 |
숫자(int) td> | int, long |
숫자(실수) | float |
true | 참 |
거짓 | 거짓 |
null | 없음
다른 데이터 유형과 Json 간의 인코딩 및 디코딩
>>> p = Point(2,3) >>> s = json.dumps(p, default=serialize_instance) >>> s '{"__classname__": "Point", "y": 3, "x": 2}' >>> a = json.loads(s, object_hook=unserialize_object) >>> a <__main__.Point object at 0x1017577d0> >>> a.x 2 >>> a.y 3함수를 사용하여 직렬화 방법을 지정합니다. 즉, 객체의 "속성-값" 쌍을 사전 쌍으로 변환합니다. 이 함수는 사전을 반환한 다음
json.dumps
가 형식을 지정합니다. 사전.
json을 객체로 변환하는 함수를 사용하는 경우 먼저 클래스 이름을 가져온 다음 __new__
를 통해(초기화 함수 호출 없이) 객체를 생성한 다음 json 사전의 각 속성을 할당합니다. 개체에.
함수를 사용하여 json 변환 방법 Python을 지정하세요
rrreee🎜🎜🎜🎜🎜사용 방법은 다음과 같습니다. 🎜🎜🎜🎜🎜rrreee🎜🎜🎜🎜관련 권장 사항: 🎜 🎜자세한 설명 Python의 JSON 구문 분석🎜🎜🎜 🎜Json 문자열을 판단하는 Python의 예🎜🎜🎜🎜json의 Python 작업 요약에 대한 심층적인 이해🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜
위 내용은 Python의 Json_python 구문 분석에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

slicepaythonlistisdoneusingthesyntaxlist [start : step : step] .here'showitworks : 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelemement.3) stepisincrementbetwetweentractionsoftortionsoflists

NumpyAllowsForVariousOperationsOnArrays : 1) BasicArithmeticLikeadDition, Subtraction, A 및 Division; 2) AdvancedOperationsSuchasmatrixmultiplication; 3) extrayintondsfordatamanipulation; 5) Ag

Arraysinpython, 특히 Stroughnumpyandpandas, areestentialfordataanalysis, setingspeedandefficiency

ListSandnumpyArraysInpythonHavedifferentmoryfootPrints : ListSaremoreFlexibleButlessMemory-Efficer, whilumpyArraySareOptimizedFornumericalData.1) ListSTorERENFERENCESTOOBJECTS, OverHeadAround64ByTeson64-BitSyStems.2) NumpyArraysTATACONTACOTIGUOU

ToensurePythonScriptTscriptsBecorrectelyRossDevelopment, Staging and Production, UsethesEStrategies : 1) EnvironmberVariblesForsimplesettings, 2) ConfigurationFilesforcomplexSetups 및 3) DynamicLoadingForAdAptability

Python List 슬라이싱의 기본 구문은 목록 [start : stop : step]입니다. 1. Start는 첫 번째 요소 인덱스, 2.Stop은 첫 번째 요소 인덱스가 제외되고 3. Step은 요소 사이의 단계 크기를 결정합니다. 슬라이스는 데이터를 추출하는 데 사용될뿐만 아니라 목록을 수정하고 반전시키는 데 사용됩니다.

ListSoutPerformArraysin : 1) DynamicsizingandFrequentInsertions/Deletions, 2) StoringHeterogeneousData 및 3) MemoryEfficiencyForsParsEdata, butMayHavesLightPerformanceCosceperationOperations.

TOCONVERTAPYTHONARRAYTOALIST, USETHELIST () CONSTUCTORORAGENERATERATOREXPRESSION.1) importTheArrayModuleAndCreateAnarray.2) USELIST (ARR) 또는 [XFORXINARR] TOCONVERTITTOALIST.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版
시각적 웹 개발 도구
