내 프로젝트는 현재 파이썬으로 JSON 메시지를 받고 있으며 약간의 정보를 얻어야합니다. 이를 위해 문자열에서 간단한 JSON으로 설정하십시오.
jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
지금까지 목록을 사용하여 JSON 요청을 생성 한 다음 json.dumps
반대의 작업을 수행하려면을 사용해야한다고 생각합니다 json.loads
. 그러나 나는 그다지 운이 없었습니다. 누구든지 위의 예제에서 "2"
입력 한 내용을 반환하는 스 니펫을 제공 할 수 "two"
있습니까?
답변
매우 간단합니다 :
import json
data = json.loads('{"one" : "1", "two" : "2", "three" : "3"}')
print data['two']
답변
때로는 json이 문자열이 아닙니다. 예를 들어 다음과 같이 URL에서 json을 얻는 경우 :
j = urllib2.urlopen('http://site.com/data.json')
json.loads가 아닌 json.load를 사용해야합니다.
j_obj = json.load(j)
(잊기 쉽다 : ‘s’는 ‘string’입니다)
답변
URL 또는 파일의 경우을 사용하십시오 json.load()
. .json 컨텐츠가 포함 된 문자열의 경우을 사용하십시오 json.loads()
.
#! /usr/bin/python
import json
# from pprint import pprint
json_file = 'my_cube.json'
cube = '1'
with open(json_file) as json_data:
data = json.load(json_data)
# pprint(data)
print "Dimension: ", data['cubes'][cube]['dim']
print "Measures: ", data['cubes'][cube]['meas']
답변
다음은 도움이 될 수있는 간단한 예입니다.
json_string = """
{
"pk": 1,
"fa": "cc.ee",
"fb": {
"fc": "",
"fd_id": "12345"
}
}"""
import json
data = json.loads(json_string)
if data["fa"] == "cc.ee":
data["fb"]["new_key"] = "cc.ee was present!"
print json.dumps(data)
위 코드의 출력은 다음과 같습니다.
{"pk": 1, "fb": {"new_key": "cc.ee was present!", "fd_id": "12345",
"fc": ""}, "fa": "cc.ee"}
덤프의 ident 인수를 설정하여 인쇄 할 수 있습니다 (예 : print json.dumps (data, indent = 4) 사용시).
{
"pk": 1,
"fb": {
"new_key": "cc.ee was present!",
"fd_id": "12345",
"fc": ""
},
"fa": "cc.ee"
}
답변
json 또는 ast python 모듈을 사용할 수 있습니다.
Using json :
=============
import json
jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
json_data = json.loads(jsonStr)
print(f"json_data: {json_data}")
print(f"json_data['two']: {json_data['two']}")
Output:
json_data: {'one': '1', 'two': '2', 'three': '3'}
json_data['two']: 2
Using ast:
==========
import ast
jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
json_dict = ast.literal_eval(jsonStr)
print(f"json_dict: {json_dict}")
print(f"json_dict['two']: {json_dict['two']}")
Output:
json_dict: {'one': '1', 'two': '2', 'three': '3'}
json_dict['two']: 2