私のプロジェクトは現在、pythonでJSONメッセージを受信しています。このメッセージから情報を得る必要があります。この目的のために、文字列内の単純なJSONに設定しましょう。
jsonStr = "{"one" : "1", "two" : "2", "three" : "3"}"
これまで私は "リストを使ってJSONリクエストを生成してきました json.dumps
しかし、これとは逆のことをするには、私が使う必要があると思います json.loads
しかし、私は「うまくいっていません。上記の例で「2」を入力して「2」を返すスニペットを誰かに提供してもらえますか?」
回答:
回答№1の328非常に単純です:
import json
j = json.loads("{"one" : "1", "two" : "2", "three" : "3"}")
print j["two"]
回答№2の66
時々あなたのJSONは文字列ではありません。たとえば、次のようなURLからJSONを取得しているとします。
j = urllib2.urlopen("http://site.com/data.json")
json.loadsではなくjson.loadを使用する必要があります。
j_obj = json.load(j)
(忘れがちです。「s」は「string」のためです)
回答№3のための30
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"]
答え№4の20
以下は、役に立つかもしれない簡単な例です。
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のident引数を設定できることに注意してください(例えば、print json.dumps(data、indent = 4)を使用するとき):
{
"pk": 1,
"fb": {
"new_key": "cc.ee was present!",
"fd_id": "12345",
"fc": ""
},
"fa": "cc.ee"
}