libscipsのプログラムレベルのお話(α0.0.2) 〜バグ修正の巻〜
エラーが出たため修正。
問題発生
Exception in thread Thread-5: Traceback (most recent call last): File "/home/hogehoge/.pyenv/versions/3.6.4/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/home/hogehoge/.pyenv/versions/3.6.4/lib/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "main.py", line 88, in train n_state, reward, end_action = env.step(a) File "/home/hogehoge/PycharmProjects/soccerai/env_data.py", line 146, in step rec_raw = self.recieve_msg() File "/home/hogehoge/PycharmProjects/soccerai/libscips/signal.py", line 83, in recieve_msg replace('""', '"')), address File "/home/hogehoge/.pyenv/versions/3.6.4/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/home/hogehoge/.pyenv/versions/3.6.4/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/home/hogehoge/.pyenv/versions/3.6.4/lib/python3.6/json/decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 32 (char 31)
えっと、agent2dと一緒にやるまで前は問題なかったからagent2dの何かが悪さしているな。
調べる。
調べてみたら、agent2dが変なhearメッセージを出してる。markdown的にコピペがすごい大変だからやらないけど記号だらけ。 agent2dがこれは悪い。
こうした。
try: return json.loads(msg[:-1].decode("utf-8").replace(" ", " ").replace("(", "['").replace(")", "']"). replace(" ", "','").replace("'[", "[").replace("]'", "]").replace("][", "],["). replace("''", "'")), address except json.decoder.JSONDecodeError: return ["error","A message that libscips cannot parse. Special characters (parentheses, " "double quotes, single quotes, etc.)\nA problematic message:"+msg[:-1].decode("utf-8")]
エラーが出たら、jsonの囲み方をダブルクォートからシングルクォートに変更してそれでもダメなら扱えないメッセージを出すということにした。 でも、あまりいい方法ではない気がする。後々修正予定。 α0.0.2の変更箇所はこれだけ。
最後に
ちょっといろいろ考えなくては。
個人的な質問等はこちらまで。
https://forms.gle/V6NRhoTooFw15hJdA
また、自分が参加しているRobocup soccer シミュレーションリーグのチームでは参加者募集中です!活動の見学、活動に参加したい方、ご連絡お待ちしております!
詳しくはこちら