对于我正在使用此网站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
有人可以帮我把这些词汇正确地组织到列表中吗?我认为问题是我将整行添加到列表的每个元素中。
答案 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']