pepper에 외부 모듈을 추가해 보자. 우선 requests에서.

안녕하세요 0 비스케입니다.
pepper 개발로 빠진 곳 등을 메모하고 있습니다. (이전 => Pepper의 Python으로 자작 Box 작성을 해 나가는 메모)

파이썬은 요청 모듈이 훌륭합니다. http통신할 때는 적극적으로 사용하고 싶다...단지, pepper라면 pip를 사용할 수 없기 때문에 이하의 순서로 합시다고 이야기입니다.

덧붙여서 사진은 최근 우리 팀에 조인해 준 @ukk0 입니다. 기사 내용과 관련이 없습니다 웃음


Pepper의 HTTP 통신에 Requests 사용 를 참고로 하고 있습니다.

request 모듈



http 요청을 좋은 느낌으로 해주는 모듈입니다.urllib2 라고 있습니다만, 비교가 되지 않을 정도 간단합니다.
  • 설치
  • $ pip install requests
    
  • 샘플

  • app.py
    import requests
    
    r = requests.get('http://qiita.com/n0bisuke/items/d07b5485f4e767bc6e20.json')
    print r.json()["title"]
    

    Qiita 게시물 정보를 가져옵니다.
    h tp : // 쿠이타. 이 m / n0 비스케 / ms / d07b5485f4에 767bc6에 20. j 그런
  • 실행
  • $ python app.py
    pepperのpythonでHTTP GETしてJSONパースするサンプル
    

    두 줄로 걸어 버립니다. 간단하네요.

    pepper에서 사용



    pepper에서는 pip를 사용할 수 없으며 디렉토리별로 찌르는 것이 일반적인 것 같습니다.

    github 페이지에서 zip으로 다운로드하여 내용물의 requestsフォルダ



    libフォルダ를 만들고 그 안에 requestsフォルダ를 넣으십시오.


    나머지는 마지막 기사 과 같이 Python Script 를 편집합니다.

    app.py
    class MyClass(GeneratedClass):
        def __init__(self):
            GeneratedClass.__init__(self)
    
        def onLoad(self):
            self.framemanager = ALProxy("ALFrameManager")
            self.folderName = None
    
        def onUnload(self):
            import sys
            if self.folderName and self.folderName in sys.path:
                sys.path.remove(self.folderName)
            self.folderName = None
    
        def onInput_onStart(self):
            import sys, os
            self.folderName = os.path.join(self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
            if self.folderName not in sys.path:
                sys.path.append(self.folderName)
    
        def onInput_onStop(self):
            self.onUnload()
            self.onStopped()
    
    self.framemanager.getBehaviorPath(self.behaviorId), "../lib" 등은 아까 만든 libフォルダ 에의 경로 지정을 하고 있는 느낌입니다.

    파이썬 상세하지 않으므로 더 이상 언급하지 않습니다.

    app.py
    class MyClass(GeneratedClass):
        def __init__(self):
            GeneratedClass.__init__(self)
    
        def onLoad(self):
            self.framemanager = ALProxy("ALFrameManager")
            self.folderName = None
    
        def onUnload(self):
            import sys
            if self.folderName and self.folderName in sys.path:
                sys.path.remove(self.folderName)
            self.folderName = None
    
        def onInput_onStart(self):
            import sys, os
            self.folderName = os.path.join(self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
            if self.folderName not in sys.path:
                sys.path.append(self.folderName)
            import requests
            r = requests.get('http://qiita.com/n0bisuke/items/d07b5485f4e767bc6e20.json') #←追記
            title = r.json()["title"].encode("utf-8") #←追記
            self.logger.info(title) #←追記
    
        def onInput_onStop(self):
            self.onUnload()
            self.onStopped()
    

    이제 마침내 import requests 수 있습니다.
    나머지는 처음에 쓴 파이썬 코드와 같은 느낌이군요.

    실행하여 콜레그래프 대화 상자에 다음과 같이 구문 분석된 문자열이 표시되면 성공합니다.
    pepperのpythonでHTTP GETしてJSONパースするサンプル
    

    좋은 웹페이지 즐겨찾기