반응형
나는 처음으로 JSON을 구문 분석하고 다차원 배열을 처리하려고 머리를 숙이고 있습니다.
{
"secret": "[Hidden]",
"minutes": 20,
"link": "http:\/\/www.1.com",
"bookmark_collection": {
"free_link": {
"name": "#free_link#",
"bookmarks": [
{
"name": "1",
"link": "http:\/\/www.1.com"
},
{
"name": "2",
"link": "http:\/\/2.dk"
},
{
"name": "3",
"link": "http:\/\/www.3.in"
}
]
},
"boarding_pass": {
"name": "Boarding Pass",
"bookmarks": [
{
"name": "1",
"link": "http:\/\/www.1.com\/"
},
{
"name": "2",
"link": "http:\/\/www.2.com\/"
},
{
"name": "3",
"link": "http:\/\/www.3.hk"
}
]
},
"sublinks": {
"name": "sublinks",
"link": [
"http:\/\/www.1.com",
"http:\/\/www.2.com",
"http:\/\/www.3.com"
]
}
}
}
이것은 세 부분으로 나뉩니다. 첫 번째 차원의 정적 데이터 (비밀, 분, 링크)는 별도의 문자열로 가져와야합니다.
그런 다음 고정 된 이름이없는 "책갈피 모음"별로 사전이 필요하므로 이름과 각 책갈피의 링크 / 이름이 필요합니다.
그런 다음 항상 동일한 별도의 하위 링크가 있으며 별도의 사전에 모든 링크가 필요합니다.
JSON 구문 분석에 대해 읽고 있지만 내가 찾은 대부분의 항목은 하나의 사전에 넣은 간단한 배열입니다. 누구든지 이것을 할 좋은 기술이 있습니까?
해결 방법
JSON을 파싱하면 Python dict가 생성됩니다. 따라서 위의 JSON이 input_data라는 문자열에 있다고 가정합니다.
import json
# This converts from JSON to a python dict
parsed_input = json.loads(input_data)
# Now, all of your static variables are referenceable as keys:
secret = parsed_input['secret']
minutes = parsed_input['minutes']
link = parsed_input['link']
# Plus, you can get your bookmark collection as:
bookmark_collection = parsed_input['bookmark_collection']
# Print a list of names of the bookmark collections...
print bookmark_collection.keys() # Note this contains sublinks, so remove it if needed
# Get the name of the Boarding Pass bookmark:
print bookmark_collection['boarding_pass']['name']
# Print out a list of all bookmark links as:
# Boarding Pass
# * 1: http://www.1.com/
# * 2: http://www.2.com/
# ...
for bookmark_definition in bookmark_collection.values():
# Skip sublinks...
if bookmark_definition['name'] == 'sublinks':
continue
print bookmark_definition['name']
for bookmark in bookmark_definition['bookmarks']:
print " * %(name)s: %(link)s" % bookmark
# Get the sublink definition:
sublinks = parsed_input['bookmark_collection']['sublinks']
# .. and print them
print sublinks['name']
for link in sublinks['link']:
print ' *', link
참조 페이지 https://stackoverflow.com/questions/12344332
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python을 사용하여 SSH를 사용하는 가장 간단한 방법은 무엇입니까? (0) | 2021.02.06 |
---|---|
파이썬 서버 소켓 수신 백로 그는 100 개의 연결로 제한됩니다. (0) | 2021.02.06 |
파이썬 zlib 지원으로 소스에서 Python 빌드 (0) | 2021.02.06 |
파이썬 ElementTree 및 유니 코드 (0) | 2021.02.06 |
파이썬 Python을 사용하여 JSON에서 값 가져 오기 (0) | 2021.02.06 |
댓글