#python 3 version
...
#關於產地
...
crop = '牛蒡'
...
#要求輸入資料
def rundatainputcircle():
marketinput = input('*請擇一輸入: 1:臺北一, 2:臺北二, 3:三重市, 4:臺中市, 5:高雄市, 6:鳳山市, 7:桃園縣 或是不填寫 > ')
if marketinput == '':
market = ''
elif len(str(marketinput)) ==1 and 1 <= int(marketinput) <= 7:
market = uriba[uribalist[int(marketinput)-1] + 1]
else:
print('請重新輸入:1:臺北一, 2:臺北二, 3:三重市, 4:臺中市, 5:高雄市, 6:鳳山市, 7:桃園縣 或是不填寫 > ')
rundatainputcircle()
rundatainputcircle()
#匯入資料
def rundatacircle():
url = 'http://m.coa.gov.tw/OpenData/FarmTransData.aspx?' + '$top=' + top + '&$skip=0&crop=' + crop + '&StartDate=' + startdate + '&EndDate=' + enddate
if market != '':
url += '&Market=' + market
else:
url = url
url = url.encode('ascii')
print(url)#test
urllib.request.urlretrieve(url, "data.gz")
data_str = open('data.gz', 'r').read()#gzip.open('data.gz', 'r').read()
gobou_data = json.loads(data_str)
print(len(gobou_data))#test
return gobou_data
rawdata = rundatacircle()
而且它顯示了一個錯誤:中國字,UnicodeEncodeError: 'ASCII' 編解碼器在55-56位置無法編碼的字符:在範圍序數不(128)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 55-56: ordinal not in range(128)
錯誤的部分消息:
------ UnicodeEncodeError Traceback (most recent call last) in() 92 print(len(gobou_data))#test 93 return gobou_data ---> 94 rawdata = rundatacircle() 95 96 #開始按照月份把資料載下來,從今天所屬的這個月,一直自動存到資料的最開頭101.01.01
in rundatacircle() 87 url = url 88 print(url)#test ---> 89 urllib.request.urlretrieve(url, "data.gz")# python 3 getting pics from url 90 data_str = open('data.gz', 'r').read()#gzip.open('data.gz', 'r').read() 91 gobou_data = json.loads(data_str)
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py in urlretrieve(url, filename, reporthook, data) 185 url_type, path = splittype(url) 186 --> 187 with contextlib.closing(urlopen(url, data)) as fp: 188 headers = fp.info() 189
....它很長,所以我沒有列出整個消息。
我曾嘗試過Google和stackflow上的很多方法,但無法解決這個問題。我無法理解錯誤的含義。
p.s.這部分代碼存在問題。我使用Python 3.5
作物是一箇中文詞,它不應該改變或被刪除。 如果它已被刪除,數據將出錯....
http://stackoverflow.com/questions/9942594/unicodeencodeerror-ascii-codec-cant-encode-character-u- xa0-in-position-20?rq = 1 – Paul
對不起,但你似乎沒有閱讀你的搜索結果,看到重複的答案...即:http://stackoverflow.com/questions/3224268/ python-unicode-encode-error – bufh
@bufh,謝謝。 是的,但中文單詞會消失.... 如果中文單詞消失,我無法獲取我想要的數據 – YannYann