如何获取另一个json中的json对象? 我有一个url,它返回一个json对象(用ruby制作),其中包含另一个json对象,例如:
json =
{"country":"canada",
"tours":"[
{\"title\":\"Canadian Rockies Trail\",\"price\":\"$2249\"},
{\"title\":\"2-Day Fantasy Island Getaway\",\"price\":\"$269\"}
]"}
然后,我想在“游览”元素中获取对象,这是另一个json。
我已经尝试json.load(json)['tours']
以“游览”方式提供数据,但是以字符串格式提供给我,因此,我无法操纵数据。是否有任何解析方法可以将其作为Json而不是字符串?
我想获得如下数据:
Canadian Rockies Trail ; price $2249
2-Day Fantasy Island Getaway; price $269
答案 0 :(得分:0)
你应该将你的字典命名为json以外的东西,因为它会与你的导入冲突。假设它被称为json_dict,
json.loads(json_dict['tours'])
应该这样做
答案 1 :(得分:0)
我在这里看到的问题是你的json['tours']
是一个json编码的字符串。您应该使用json.loads(str)
将其转换为字典。我会就地这样做并访问它。
见下面的代码
import json
foo ={"country":"canada",
"tours":"[{\"title\":\"Canadian Rockies Trail\",\"price\":\"$2249\"},{\"title\":\"2-Day Fantasy Island Getaway\",\"price\":\"$269\"}]"}
foo['tours'] = json.loads(foo['tours']) # turn tours into dict
for tour in foo['tours']:
print "tour name : {} :::: tour price: {}".format(tour['title'],tour['price']) # tour is a dict now.
答案 2 :(得分:0)
你的json中不需要所有的\。你的json应该是这样的。
j_dict = {"country": "canada",
"tours": [{"title":"Canadian Rockies Trail","price":"$2249"},{"title":"2-Day Fantasy Island Getaway","price":"$269"}]}
那么你的程序应该如下所示。首先,您需要将字典转换为json字符串。
import json
j_string = json.dumps(j_dict)
foobar = json.loads(j_string)['tours']