我有一个JSON,我需要从中获取'pk'和'cnt'的值:
[{
"ip": "[{"pk": "173.194.44.23",
"model": "link_finder.ip",
"fields": {"cnt": 3}},
{"pk": "173.194.44.24",
"model": "link_finder.ip",
"fields": {"cnt": 3}}]",
"urls": "[{"pk": "http:\\google.com\advanced_search?hl=uk&authuser=0",
"model": "link_finder.url",
"fields": {"cnt": 2}},
{"pk": "http:\\google.com\intl\uk\about.html",
"model": "link_finder.url",
"fields": {"cnt": 2}}]"
}]
我知道如何把它放在一个数组中,但是如何从第一段和第二段得到pk和cnt walues?
答案 0 :(得分:3)
已更新,因为代码已更改:
如果对象名为ip
,则:
data[0].ip[0].pk
data[0].ip[0].fields.cnt
data[1].ip[1].pk
data[1].ip[1].fields.cnt
原始回答:
你错过了数组括号,这是有效的JSON。
还假设您从某种类型的Ajax-y中获取此JSON,并且它在一个名为“data”的对象中发送回JSON。
如果您有数组括号,则语法为:
data[0].pk //123.104.44.23
data[0].fields.cnt // 159
data[1].pk //171.154.44.24
data[1].fields.cnt // 159
这将是Javascript,虽然看起来语法也适用于Python。
答案 1 :(得分:1)
检查下一个代码。
var json = {};
json = [{"pk": "123.104.44.23",
"model": "link_finder.ip",
"fields": {"cnt": 159}},
{"pk": "171.154.44.24",
"model": "link_finder.ip",
"fields": {"cnt": 159}},
{"pk": "172.194.34.31",
"model": "link_finder.ip",
"fields": {"cnt": 159}}];
for (var key in json){ console.log(json[key].pk + ' ' + json[key].fields.cnt)}
<强>结果:强>
123.104.44.23 159
171.154.44.24 159
172.194.34.31 159