Android上でのPythonについて、以下のエラーが解消出来ず困っています。
解消方法があればご教示頂けると助かりますm(_ _)m
【使用端末】
Android Pixel3
【使用アプリ】
QPython3
【実行したい内容】
天気予報サイトから明日の天気情報を抜き出し、画面上にテキストとして表示させる。
【エラーメッセージ】
line 33, in <module> f.write(y.encode('utf-8') + ",") TypeError: can't concat bytes to str
【ソースコード】
#-*-coding:utf8;-*- #qpy:2 #qpy:console import androidhelper import os try: import urllib.request as urllib2 except importError: import urllib2 import ssl import re from bs4 import BeautifulSoup if hasattr(ssl, '_create_default_https_context') and hasattr(ssl, '_create_unverified_context'): ssl._create_default_https_context = ssl._create_unverified_context url = "http://weather.livedoor.com/forecast/rss/area/130010.xml" html = urllib2.urlopen(url) tenki = [] soup = BeautifulSoup(html, "html.parser") for item in soup.findAll("item"): title = item.find("title").string if title.find("[ PR ]") == -1: text = re.sub(r'[?.+]\s', '', title) result = text.split(' - ') tenki.append(result) fn = os.path.dirname(__file__)+'/tenki.txt' f = open(fn,'w') for x in tenki: for y in x: f.write(y.encode('utf-8') + ",") f.write("\n") f.close() asita="" for y in tenki[1]: asita = asita +str(y.encode('utf-8')) droid = androidhelper.Android(); droid.dialogCreateAlert(asita) droid.dialogSetPositiveButtonText('OK') droid.dialogShow() result = droid.dialogGetResponse().result droid.dialogDismiss()
また、エラーが出ている箇所は、データを保存する内容だと思いますが、
いっそそこはカットしても問題無いため、エラーとして関連していそうな↓↓
fn = os.path.dirname(__file__)+'/tenki.txt' f = open(fn,'w') for x in tenki: for y in x: f.write(y.encode('utf-8') + ",") f.write("\n") f.close()
上記コードを丸々コメントアウトすると、一応動作しました。
ただ、そうすると、表示されるテキストが思い切り文字化けしています。
この文字化けが解消されるならば、それでも「解決」となりますので、分かればご教示をお願いしますm(_ _)m
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/12 04:27