coercing to Unicode錯誤的一個解決辦法
阿新 • • 發佈:2019-01-04
今天調python程式碼,出錯程式碼
temp_min = weather_data[time_index]['low'], temp_max = weather_data[time_index]['high'] description = weather_data[time_index]['text'].replace('/', u'轉') wind_deg = weather_data[time_index]['wind'] response = city_name + time_name + description + u',' + wind_deg + u',' + u'最高溫度' + temp_max+ u'>攝氏度,' + u'最低溫度' + temp_min + u'攝氏度'
最後一行出了這麼個報錯:
coercing to Unicode: need string or buffer, tuple found
怎麼會有tuple冒出來?看著+操作符兩邊都是字串啊!百思不得其解,最後突然想起+操作符會丟擲異常,改用%操作符輸出
response = u'%s%s%s,%s,最高溫度%s攝氏度,最低溫度%s攝氏度'%(city_name, time_name, description, wind_deg, temp_max, temp_min)
這次就沒有異常丟擲了,輸出
西安今天小雨轉陰,微風小於3級,最高溫度27攝氏度,最低溫度(u'22',)攝氏度
最低氣溫怎麼會多出個括弧?原來這就是tuple的來源!temp_min語句的末尾多了個逗號,python語言自動將返回值變為tuple型別!