1 # -*- coding: utf-8 -*- 2 import urllib 3 import urllib2 4 import json 5 ..... 6 7 def ds_daily(lat,lng): 8 url='https://api.darksky.net/forecast/'+'55a4d919a5ea39183daac7d8bb7d3012/'+str(lat)+','+str(lng)\ 9 +'?exclude=currently,minutely,hourly?units=si' 10 rawdata=urllib2.urlopen(url) 11 readit=rawdata.read() 12 data=json.loads(readit) 13 response="最高气温:{} 最低气温:{}\n最高体感温度:{}\n降水几率:{} 降水类型:{}\n日落时间:{}\n月相:{}"\ 14 .format(data['daily']['data'][0]['temperatureHigh'],data['daily']['data'][0]['temperatureLow'],data['daily']['data'][0]['apparentTemperatureHigh'],\ 15 data['daily']['data'][0]['precipProbability'],data['daily']['data'][0]['precipType'],data['daily']['data'][0]['sunsetTime'],data['daily']['data'][0]['moonPhase']) 16 print response 17 ......
以前以为直接在开头部分直接加上utf8编码声明就不会乱码,结果还是输出了乱码。
具体解决方案在中文输出的字符串前加上u,例如
response=u"最高气温:{} 最低气温:{}\n最高体感温度:{}\n降水几率:{} 降水类型:{}\n日落时间:{}\n月相:{}"