1. 程式人生 > >coercing to Unicode錯誤的一個解決辦法

coercing to Unicode錯誤的一個解決辦法

今天調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型別!