Python의 URL에서 JSON 가져 오기
URL을 사용하여 웹 서버에서 데이터를 얻고 싶을 때마다 해당 데이터는 특정 형식을 가져야합니다. 일반적으로 웹 서버에서 데이터를 가져올 때마다 JSON 또는 XML 형식을 사용합니다.
우리는 XML보다 JSON을 선호합니다. 소프트웨어 산업에서 꽤 인기를 얻었 기 때문입니다. Python에는 JSON을 처리하기위한 다양한 라이브러리가 있습니다.
이 자습서에서는 Python에서 사용할 수있는json
및requests
모듈을 사용합니다.
우리가 가져올 JSON 데이터는 아래 URL에서 가져옵니다. 이 URL을 통해 이름, 이메일, 주소 등과 같이사용자
와 관련된 모든 데이터를 가져올 수 있습니다. 무료로 사용할 수 있습니다.
https://jsonplaceholder.typicode.com/users
Restful API 측면에서 URL을 엔드 포인트라고합니다. 이 자습서에서는이 두 단어를 서로 바꿔서 사용할 것입니다. 위의 URL에서/users
는 엔드 포인트를 나타냅니다.
브라우저에서 위 URL을 열면사용자
와 관련된 모든 데이터가 JSON 형식으로 표시됩니다. 아래와 같습니다.
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
},
]
위의 코드 블록에서 단일 사용자와 관련된 JSON 데이터 만 표시했습니다. 이것은 단지 설명을위한 것입니다. 그러나 URL을 방문하면 모든 사용자의 데이터를 볼 수 있습니다.
JSON은JavaScript Object Notation
을 참조합니다. 서버와 클라이언트간에 데이터를주고받는 데 사용되며 그 반대의 경우도 마찬가지입니다. 여기에서JavaScript
라는 단어와 혼동하지 마십시오. JSON은 모든 프로그래밍 언어와 독립적입니다. JSON에서는 두 가지 유형의 대괄호를 사용하여 데이터 형식을 지정합니다. 하나는array
또는list
를 나타내는 대괄호[]
이고 다른 하나는object
를 나타내는 중괄호{}
입니다.
JSON 내부의 데이터는 항상 따옴표""
안의키-값
쌍의 형태입니다. 따라서 값에 액세스하려면 해당 값과 관련된키
를 사용해야합니다. 예를 들어 위의 JSON 데이터에서 사용자 이름에 액세스하려고한다고 가정 해 보겠습니다. name
키를 사용하여 첫 번째 사용자의 이름 인Leanne Graham
값을 가져옵니다. 또한 JSON에서는 주석이 허용되지 않습니다.
Python에서 JSON 데이터 가져 오기 및 액세스
먼저 데이터를 가져오고 액세스하려면requests
및json
모듈을 가져와야합니다.
import requests
import json
URL에서 데이터를 가져와 문자열로 변환
여기서 수행해야 할 첫 번째 단계는requests
라이브러리를 사용하여 JSON 데이터를 가져 오는 것입니다.
url = requests.get("https://jsonplaceholder.typicode.com/users")
text = url.text
print(type(text))
출력:
<class 'str'>
requests
라이브러리에는 URL을 매개 변수로 취한 다음GET
요청을 지정된 URL로 보내는get()
이라는 메소드가 있습니다. 서버에서받은 응답은url
이라는 변수에 저장됩니다.
url
변수 내에 저장된이 응답은url.text
와 같은.text
메소드를 사용하여 문자열로 변환해야합니다. 그런 다음 결과를text
변수에 저장합니다. text
변수의 유형을 인쇄하면<class 'str'>
유형이됩니다.
JSON 데이터 구문 분석
구문 분석은 문자열 데이터를 JSON 형식으로 변환하는 프로세스입니다. 이를 위해json
모듈을 사용할 것입니다.
data = json.loads(text)
print(type(data))
출력:
<class 'list'>
json
모듈은loads()
라는 메소드와 함께 제공되며loads()
의s
는 문자열을 나타냅니다. 문자열 데이터를 JSON으로 변환하고 싶기 때문에이 방법을 사용할 것입니다. 이 메소드 내에서 문자열 데이터json.loads(text)
를 포함하는text
변수를 전달하고data
변수에 저장해야합니다.
이제data
에 전체 JSON 응답이 있습니다. data
변수의 유형을 인쇄하면<class 'list'>
유형이됩니다.이 경우 JSON 응답은 대괄호[]
로 시작하고 Python에서는 목록이 정사각형으로 시작하기 때문입니다. 대괄호.
JSON 데이터에 액세스
이제 JSON 데이터를 구문 분석 했으므로data
변수를 사용하여 원하는 개별 값에 액세스 할 준비가되었습니다. 이름 및 주소와 같은 첫 번째 사용자의 세부 정보에 액세스하려면 다음을 수행 할 수 있습니다.
import json
import requests
url = requests.get("https://jsonplaceholder.typicode.com/users")
text = url.text
data = json.loads(text)
user = data[0]
print(user["name"])
address = user["address"]
print(address)
출력:
Leanne Graham
{'street': 'Kulas Light', 'suite': 'Apt. 556', 'city': 'Gwenborough', 'zipcode': '92998-3874', 'geo': {'lat': '-37.3159', 'lng': '81.1496'}}
사용자 목록에서 첫 번째 사용자에 액세스하려면 data
라는 변수에 저장된 JSON 데이터의 0
인덱스를 사용한 다음 첫 번째 사용자의 전체 세부 정보를 user
에 저장해야합니다. 이제이users
는 해당 사용자와 관련된 모든 세부 정보를 포함하는 개체입니다. 이름에 액세스하려면user['name']
과 같은user
변수에name
키를 전달한 다음 인쇄하면됩니다. 콘솔 내부에 사용자 이름이 인쇄됩니다.
주소에 액세스하려면 사용자 변수 즉,user['address']
내에address
키를 전달한 다음address
라는 변수에 저장 한 다음 인쇄해야합니다. 그러면 아파트 번호, 거리 이름, 우편 번호 등과 같은 주소 필드와 관련된 모든 특정 세부 정보가 포함 된 개체가 제공됩니다. 이러한 세부 정보 중에서 사용자의zipcode
만 원한다고 가정 해 보겠습니다. 그런 다음address
개체 내에zipcode
코드 키를 전달해야합니다.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn