首页 新闻 会员 周边

HeadFirstInPython 第八章 从json里面loads出来的dict 在SL4A app.dialogSetItems(athlete['Top3']) 报错

0
悬赏园豆:10 [待解决问题]
if resp['which'] in ('positive'): 
    selected_athlete=app.dialogGetSelectedItems().result[0] 
    which_athlete = athlete_names[selected_athlete] 
    athlete=json.loads(send_to_server(web_server+get_data_cgi,{'which_athlete':which_athlete})) 
    athlete_title = athlete['Name'] + ' (' + athlete['DOB'] + '), top 3 times:' 
    app.dialogCreateAlert(athlete_title) 
    print(athlete['Top3']) 
    app.dialogSetItems(athlete['Top3']) 
    app.dialogSetPositiveButtonText('OK') 
    app.dialogShow() 
    resp = app.dialogGetResponse().result 

print(athlete['Top3']) 是list 
app.dialogSetItems(athlete['Top3']) 报错 
查看sl4a api dialogSetItems 参数为list即可 

不知什么原因??求解??是json loads后字符转换成unicode吗??? 
怎么解决??求大牛解惑?? 

 

loong qiang的主页 loong qiang | 初学一级 | 园豆:192
提问于:2013-09-21 22:29
< >
分享
所有回答(2)
0

print(athlete['Top3']) 是list,但是它不一定就是list,是不是只是长得像list??

用chardet来检测下你的athlete['Top3']是什么类型的

马僧 | 园豆:205 (菜鸟二级) | 2014-04-11 13:47
0

按照当时Athlete对象的定义,athlete['Top3']调用的是 

def to_dict(self):
        athlete_dict = {}
        athlete_dict['Name'] = self.name
        athlete_dict['DOB'] = self.dob
        athlete_dict['Top3']= self.top3
        return(athlete_dict)

athlete['Top3']的结果就是一个list,我估计是你没生成json数据,你先把生成的json数据页面打开看看。

xiaoke123 | 园豆:202 (菜鸟二级) | 2016-04-18 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册