我正在尝试使用Python2.7中的urllib2从api网页读取数据。我正在使用以下几行来阅读该页面:
url = 'https://api.edamam.com/api/nutrition-data?app_id=<my_app_id>&app_key=<my_app_key>&ingr=1cheeseburger'
json_obj = urllib2.urlopen(url)
data = json.load(json_obj)
这些行给我这个错误(错误在上面的代码的最后一行):
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb5 in position 0: invalid start byte
我了解到此错误意味着json_obj
中存在非Unicode字符,但是我不确定为什么会这样,因为在浏览器中打开了相同的网址,并且网页的前几行看起来类似于以下内容:
{
"uri" : "http://www.edamam.com/ontologies/edamam.owl#recipe_2a58ff3e1fec41d79da72f0be446baaa
"calories" : 312,
"totalWeight" : 119.0,
"dietLabels" : [ "BALANCED" ],
"healthLabels" : [ "PEANUT_FREE", "TREE_NUT_FREE", "ALCOHOL_FREE" ],
"cautions" : [ ],
"totalNutrients" : {
"ENERC_KCAL" : {
"label" : "Energy",
"quantity" : 312.96999999999997,
"unit" : "kcal"
},
如您所见,此网页上没有非Unicode字符,因此我并没有真正了解正在发生的事情。