如何使用此网站API将dicts组织到列表中?

时间:2015-05-09 01:23:11

标签: python json dictionary

对于我正在使用此网站API的项目:

http://api.mapmyuser.com/userinfo.php?site=google.com&output=json

我很难将dicts分成列表。到目前为止,这是我的项目代码:

import json

import urllib.request

import statistics

    def get_website_stats(website):
    url = 'http://api.mapmyuser.com/userinfo.php?site='+ website +'&output=json'
    lines = urllib.request.urlopen(url).readlines()
    list_of_strings = []
    for obj in lines:
        list_of_strings.append(obj.decode('utf-8').strip('\n'))
    merged_string = ' '
    for string in list_of_strings:
        if string not in ('[', ']'):
            merged_string += string
    return json.loads(merged_string)

    symbol=input("What is the website name? (Do not include www)")
    stats = get_website_stats(symbol)
    print(stats['bro'])

如果您通读了API,很明显我正在尝试打印出网站用户使用的浏览器,但我收到了错误:

  

TypeError:list indices必须是整数,而不是str

有人可以帮我把这些词汇正确地组织到列表中吗?我认为问题是我将整行添加到列表的每个元素中。

1 个答案:

答案 0 :(得分:1)

在这种情况下,stats是一个列表。

print(stats[0]['bro'])

这里还有一个较短版本的脚本:

import requests
url = 'http://api.mapmyuser.com/userinfo.php?site=www.google.com&output=json'
r = requests.get(url)
if r.ok:
    stats = r.json()
    if stats:
        print(stats[0]['bro']) # 1st entry
    for s in stats:
        print s['bro']