/ / Разбор на JSON в Python - python, json, parsing

Разработване на JSON в Python - python, json, parsing

Моят проект в момента получава JSON съобщение в python, от което се нуждая, за да измъкна информация. За целите на това, нека го зададем на някой прост JSON в низ:

jsonStr = "{"one" : "1", "two" : "2", "three" : "3"}"

Досега съм генерирал JSON заявки, използвайки списък и след това json.dumps но за да направя обратното на това, мисля, че трябва да използвам json.loads но аз не съм имал много късмет с него. Може ли някой да ми даде откъс, който ще се върне "2" с входа на "две" в горния пример?

Отговори:

328 за отговор № 1

Много просто:

import json
j = json.loads("{"one" : "1", "two" : "2", "three" : "3"}")
print j["two"]

66 за отговор № 2

Понякога вашият json не е низ. Например, ако получавате json от URL адрес като този:

j = urllib2.urlopen("http://site.com/data.json")

ще трябва да използвате json.load, а не json.loads:

j_obj = json.load(j)

(лесно е да се забрави: "s" е за "низ")


30 за отговор № 3

За URL или FIle използвайте json.load (). За низ със съдържание на .json използвайте json.loads ().

#! /usr/bin/python

import json
from pprint import pprint

#json_file="a.json"
json_file="my_cube.json"
cube="1"

json_data=open(json_file)
data = json.load(json_data)
#pprint(data)
json_data.close()

print "Dimension: ", data["cubes"][cube]["dim"]
print "Measures:  ", data["cubes"][cube]["meas"]

20 за отговор № 4

Следва един прост пример, който може да ви помогне:

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"}

Обърнете внимание, че можете да зададете идентификационния аргумент на dump, така че да го отпечатате така (например, когато използвате print json.dumps (data, indent = 4)):

{
"pk": 1,
"fb": {
"new_key": "cc.ee was present!",
"fd_id": "12345",
"fc": ""
},
"fa": "cc.ee"
}