使用python从json中提取数据

时间:2017-05-23 08:30:43

标签: python

从JSON中提取数据

程序将提示输入URL,使用urllib从该URL读取JSON数据,然后从JSON数据中解析并提取注释计数,计算文件中数字的总和。

示例数据:http://python-data.dr-chuck.net/comments_42.json(Sum = 2553)

数据格式 该数据由JSON中的许多名称和注释计数组成,如下所示:

{
  comments: [
    {
      name: "Matthias"
      count: 97
    },
    {
      name: "Geomer"
      count: 97
    }
    ...
  ]
}

基本上,json文件读取为字典。字典的第二个元素是一个列表。现在这个列表中有字典。我需要找到他们的价值观。

我被困在的代码是:

import json
import urllib 
total = 0

url='http://python-data.dr-chuck.net/comments_42.json'
uh=urllib.urlopen(url).read()
info =json.loads(uh)
for items in info[1]:
 #print items
 print items[1:]

1 个答案:

答案 0 :(得分:0)

你可以尝试:

import json
import urllib 
total = 0

url='http://python-data.dr-chuck.net/comments_42.json'
uh=urllib.urlopen(url).read()
info =json.loads(uh)
count_values = [ el['count'] for el in info['comments'] ] 
name_values = [ el['name'] for el in info['comments'] ] 
print count_values
print name_values

count_values的输出:

[97, 97, 90, 90, 88, 87, 87, 80, 79, 79, 78, 76, 76, 72, 72, 66, 66, 65, 65, 64, 61, 61, 59, 58, 57, 57, 54, 51, 49, 47, 40, 38, 37, 36, 36, 32, 25, 24, 22, 21, 19, 18, 18, 14, 12, 12, 9, 7, 3, 2]

name_values的输出:

[u'Romina', u'Laurie', u'Bayli', u'Siyona', u'Taisha', u'Alanda', u'Ameelia', u'Prasheeta', u'Asif', u'Risa', u'Zi', u'Danyil', u'Ediomi', u'Barry', u'Lance', u'Hattie', u'Mathu', u'Bowie', u'Samara', u'Uchenna', u'Shauni', u'Georgia', u'Rivan', u'Kenan', u'Hassan', u'Isma', u'Samanthalee', u'Alexa', u'Caine', u'Grady', u'Anne', u'Rihan', u'Alexei', u'Indie', u'Rhuairidh', u'Annoushka', u'Kenzi', u'Shahd', u'Irvine', u'Carys', u'Skye', u'Atiya', u'Rohan', u'Nuala', u'Maram', u'Carlo', u'Japleen', u'Breeanna', u'Zaaine', u'Inika']