python simplejson 사용 중
AttributeError: 'str' object has no attribute 'read'
발생
>>> import simplejson as json
>>> json.load("{\"name\":\"park\"}")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "simplejson\__init__.py", line 393, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
>>> json.loads("{\"name\":\"park\"}")
{u'name': u'park'}
>>>
문자열을 디코딩하려면 loads 함수를 사용해야 하나 봅니다.
2013년 2월 14일 목요일
윈도우에서 python simplejson 설치
http://pypi.python.org/pypi/simplejson
에서 파일을 다운로드 받습니다.
simplejson-3.0.7.tar.gz
압축을 풀어줍니다.
압축풀린 폴더에 보면 setup.py 가 있습니다.
커맨드창에서 압축 푼 디렉토리로 이동후
python setup.py install
을 실행합니다.
python을 실행 후
>>> import simplejson
해서 에러 나지 않으면 설치가 완료된 것입니다.
에서 파일을 다운로드 받습니다.
simplejson-3.0.7.tar.gz
압축을 풀어줍니다.
압축풀린 폴더에 보면 setup.py 가 있습니다.
커맨드창에서 압축 푼 디렉토리로 이동후
python setup.py install
을 실행합니다.
python을 실행 후
>>> import simplejson
해서 에러 나지 않으면 설치가 완료된 것입니다.
2013년 2월 13일 수요일
tornado 405: Method Not Allowed
405: Method Not Allowed
WARNING:root:405 GET / (192.168.123.112) 0.49ms
POST 요청이 왔는데 post() 메소드가 없거나.
GET 요청이 왔는데 get() 메소드가 없거나
할 경우에 발생합니다.
메소드가 존재하는지를 확인합니다.
다음으로 핸들러 설정을 잘못하였거나 혹은 오타를 입력하였는지를 살펴봅니다.
소스 상에서 들여쓰기를 잘못 할 경우 인터프리터가 지적해주긴하지만
간혹 오류없이 실행되었는데 들여쓰기가 일치하지 않아 메소드를 찾지 못하는 경우도 있으니 이런부분도 확인해봅니다.
WARNING:root:405 GET / (192.168.123.112) 0.49ms
POST 요청이 왔는데 post() 메소드가 없거나.
GET 요청이 왔는데 get() 메소드가 없거나
할 경우에 발생합니다.
메소드가 존재하는지를 확인합니다.
다음으로 핸들러 설정을 잘못하였거나 혹은 오타를 입력하였는지를 살펴봅니다.
소스 상에서 들여쓰기를 잘못 할 경우 인터프리터가 지적해주긴하지만
간혹 오류없이 실행되었는데 들여쓰기가 일치하지 않아 메소드를 찾지 못하는 경우도 있으니 이런부분도 확인해봅니다.
2013년 2월 12일 화요일
tornado HelloWorld에 컨트롤러 추가
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
class MainHandler2(tornado.web.RequestHandler):
def get(self):
self.write("second handler")
application = tornado.web.Application([
(r"/", MainHandler),
(r"/two", MainHandler2),
])
if __name__ == "__main__":
application.listen(8889)
tornado.ioloop.IOLoop.instance().start()
위 소스에서 굵고 밑줄쳐진 부분이 추가된 부분입니다.
http://localhost:8889/two 로 접속하면 MainHandler2 가 실행되고
접근 방법에 따라 get() 또는 post()함수가 실행됩니다.
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
class MainHandler2(tornado.web.RequestHandler):
def get(self):
self.write("second handler")
application = tornado.web.Application([
(r"/", MainHandler),
(r"/two", MainHandler2),
])
if __name__ == "__main__":
application.listen(8889)
tornado.ioloop.IOLoop.instance().start()
위 소스에서 굵고 밑줄쳐진 부분이 추가된 부분입니다.
http://localhost:8889/two 로 접속하면 MainHandler2 가 실행되고
접근 방법에 따라 get() 또는 post()함수가 실행됩니다.
2013년 2월 8일 금요일
리눅스에서 안드로이드 개발환경 구축과정에서 sdk tool 실행 안되는 문제
민트리눅스나 우분투에서 안드로이드 개발 환경을 구축하는 과정에서
Android SDK Manager 에서 설치하는
Android SDK Tools 와 Android SDK Platform-Tools 에
adb, emulator 같은 실행 파일이 있는데요.
이들을 실행하면
"그런 파일이나 디렉터리가 없습니다"
라는 메시지가 뜨면서 실행이 안되는 문제입니다.
64bit 환경에서 32bit 실행파일을 실행시킬시 이런 에러가 날 수 있답니다.
sudo apt-get install ia32-libs
아래 참고사이트의 정보로 해결했습니다.
참고사이트
Android SDK Manager 에서 설치하는
Android SDK Tools 와 Android SDK Platform-Tools 에
adb, emulator 같은 실행 파일이 있는데요.
이들을 실행하면
"그런 파일이나 디렉터리가 없습니다"
라는 메시지가 뜨면서 실행이 안되는 문제입니다.
64bit 환경에서 32bit 실행파일을 실행시킬시 이런 에러가 날 수 있답니다.
sudo apt-get install ia32-libs
아래 참고사이트의 정보로 해결했습니다.
참고사이트
피드 구독하기:
글 (Atom)