API 키에서 json을 얻습니다. 이 내 JSON입니다 :사전 목록에서 상위 5 개 값 가져 오기?
{'[{"count":27,"stem":"obama","term":"obama"},
{"count":20,"stem":"boehner","term":"boehner"},
{"count":4,"stem":"tax","term":"tax"},
{"count":3,"stem":"daley","term":"daley"},
{"count":3,"stem":"couldn","term":"couldn"},
{"count":2,"stem":"formul","term":"formulation"}
]' : ' '}
나는이 JSON에서 상위 5 개 값을 얻을 싶어요. 나는이 사전의 목록을 설정 :
def changetodict(data):
json_str = ast.literal_eval(json.dumps(data))
#common = json.loads(json_str)
commonDict = dict(itertools.izip_longest(*[iter(json_str)] * 2,
fillvalue=""))
print commonDict
이 모든 코드 :
import urllib2, mediacloud, json,itertools,ast
from collections import Counter
webUrl = urllib2.urlopen("https://api.mediacloud.org/api/v2/wc/list?q=obama+AND+media_id:1&stats=1&&fq=publish_date:%5B2012-04-01T00:00:00.000Z+TO+2012-04-01T00:00:00.000Z%5D&key= ")
def changetodict(data):
json_str = ast.literal_eval(json.dumps(data))
#common = json.loads(json_str)
commonDict = dict(itertools.izip_longest(*[iter(json_str)] * 2, fillvalue=""))
print commonDict
most_common_imdb_value = Counter(b['key'] for b in commonDict).most_common(1)[0]
if(webUrl.getcode()== 200):
data = webUrl.readlines()
changetodict(data)
else:
print "error"
내가 그것을 작동 할 수 있도록 변경해야합니까?
import ast
from heapq import nlargest
for k in data.keys():
k = k[:-3] + ']'
k = ast.literal_eval(k)
top_5 = nlargest(5, k, key=lambda i: i["count"])
print(top_5)
편집 : data
와
업데이트
당신이 기대하고있는 출력의 예를 보일 수 있는가? –
{ "개수": 27, "줄기": "오바마", "용어": "오바마"}, { "개수": 20, "줄기": "boehner", "용어": "boehner"}, "count": 4, "stem": "tax", "term": "tax"} @Ni. – adi
3 개 항목 만 보았는데, 상위 3 개를 의미 했습니까? –