init 명령으로 server_list.json을 구성한 다음 실행하니 다음과 같이 파싱 에러가 발생합니다.
$ ./gwkit.py
Password for *********@NHNENT.COM:
Traceback (most recent call last):
File "./gwkit.py", line 686, in <module>
curses.wrapper(main)
File "/usr/lib64/python2.6/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "./gwkit.py", line 598, in main
server_list_win = ServerListWindow(context)
File "./gwkit.py", line 124, in __init__
self.servers = sorted(json.load(f), key=lambda s: s['host'])
File "/usr/lib64/python2.6/json/__init__.py", line 267, in load
parse_constant=parse_constant, **kw)
File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.6/json/decoder.py", line 336, in raw_decode
obj, end = self._scanner.iterscan(s, **kw).next()
File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
rval, next_pos = action(m, context)
File "/usr/lib64/python2.6/json/decoder.py", line 217, in JSONArray
value, end = iterscan(s, idx=end, context=context).next()
File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
rval, next_pos = action(m, context)
File "/usr/lib64/python2.6/json/decoder.py", line 183, in JSONObject
value, end = iterscan(s, idx=end, context=context).next()
File "/usr/lib64/python2.6/json/scanner.py", line 55, in iterscan
rval, next_pos = action(m, context)
File "/usr/lib64/python2.6/json/decoder.py", line 155, in JSONString
return scanstring(match.string, match.end(), encoding, strict)
ValueError: Invalid \escape: line 1 column 7691 (char 7691)
에러가 발생한 데이터를 확인해보니 다음과 같이 유니코드가 포함되어 있었습니다.
유니코드 처리가 안되면 실행도 안되니 수정해야할 것 같네요.