Rosetta Code/Rank languages by popularity: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: use the Programming_Languages category) |
(added python fail-proof solution) |
||
Line 453: | Line 453: | ||
for n, i in enumerate(sorted(result,key=key1,reverse=True)): |
for n, i in enumerate(sorted(result,key=key1,reverse=True)): |
||
print "%3d. %3d - %s" % (n+1, i[1], i[0])</lang> |
print "%3d. %3d - %s" % (n+1, i[1], i[0])</lang> |
||
Fail-proof solution |
|||
<lang python>import json |
|||
import urllib |
|||
result = [] |
|||
langs = json.load(urllib.urlopen("http://www.rosettacode.org/w/api.php?\ |
|||
action=query&list=categorymembers&cmtitle=Category:Programming_Languages\ |
|||
&cmlimit=500&format=json")); |
|||
titles = [i['title'] for i in langs['query']['categorymembers']] |
|||
while titles: |
|||
t = '|'.join(titles[:50]) |
|||
info = json.load(urllib.urlopen("http://www.rosettacode.org/w/api.php?\ |
|||
action=query&prop=categoryinfo&format=json", |
|||
data=urllib.urlencode({"titles":t})))['query']['pages'] |
|||
for i in info: |
|||
try: |
|||
result.append([info[i]['title'], info[i]['categoryinfo']['pages']]) |
|||
except: |
|||
pass |
|||
del titles[:50] |
|||
c = 0 |
|||
for i in sorted(result,key=lambda x: x[1],reverse=True): |
|||
c += 1 |
|||
print "%d. %s - %d" % (c, i[0].replace("Category:",''), i[1])</lang> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |