CherrPy har hatt en stor ansiktsløftning i senere tid,og eldre eksempler du finner på nettet vil kanskje ikke fungere.
simplejson har for mange år siden forandret navn til json,og er nå med standard bibliotek til Python.
For og sende og motta JSON i CherrPy doc.
En Test.
Server:
import cherrypy
class Root():
@cherrypy.expose
@cherrypy.tools.json_in()
def index(self):
data = cherrypy.request.json
print(data)
if __name__ == '__main__':
cherrypy.quickstart(Root)
Jeg bruker Requests til og sende JSON,og tester uten og sende Header.
>>> import requests
>>> requests.post("http://127.0.0.1:8080", json={'Hello': 'A JSON test'})
<Response [200]>
Server response:
[13/Mar/2015:00:18:49] ENGINE Listening for SIGTERM.
[13/Mar/2015:00:18:49] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at '' has an empty config.
[13/Mar/2015:00:18:49] ENGINE Started monitor thread 'Autoreloader'.
[13/Mar/2015:00:18:49] ENGINE Started monitor thread '_TimeoutMonitor'.
[13/Mar/2015:00:18:49] ENGINE Serving on http://127.0.0.1:8080
[13/Mar/2015:00:18:49] ENGINE Bus STARTED
{'Hello': 'A JSON test'}
127.0.0.1 - - [13/Mar/2015:00:19:12] "POST / HTTP/1.1" 200 - "" "python-requests/2.4.3 CPython/2.7.9 Windows/7"
Her regner jeg med at du mener er dictionary,som er map i Java/C++.
json.load() vil ta en "json string" og gjøre det om til et Python dictionary.
>>> import json
>>> data = {'Hello': 'A JSON test'}
>>> data_dump = json.dumps(data)
>>> data_dump
'{"Hello": "A JSON test"}'
>>> json.loads(data_dump)
{u'Hello': u'A JSON test'}
>>> type(json.loads(data_dump))
<type 'dict'>
Regner med du har Windows.
Installere Python 2.7.6
Sett opp Miljøvariabler følg video her,bare at du skal skriver ;C:\Python27
Lag en mappe f.eks C:\grab, i denne mappe plassere 4chanGrabber.py og BeautifulSoup.py
Da kan du teste koden,start cmd navigere til C:\grab
Microsoft Windows [Versjon 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Med enerett.
C:\Users\Tom>cd\
C:\>cd grab
C:\grab>dir
Volumet i stasjon C er uten navn.
Volumserienummeret er EED7-45CC
Innhold i C:\grab
08.05.2014 14:52 <DIR> .
08.05.2014 14:52 <DIR> ..
08.05.2014 14:37 2 151 4chanGrabber.py
08.05.2014 14:51 79 254 BeautifulSoup.py
2 fil(er) 81 405 byte
2 mappe(r) 135 809 744 896 byte ledig
C:\grab>python 4chanGrabber.py
Downloading from board p/ thread go-pro-please-post-images-that-are-jpg-format
Downloading from board p/ thread video-general-stop-arguing-edition-friendly
Du kan godt kjøre kjørte rett fra en editor(treger ikke kjøres fra kommano linje) f.eks Pyscripter er en grei editor.
Koden er ikke så bra skevet,for og forandre "BOARD" må du gjøre forandringer i linje 26.
BOARD = "p/" forandre til f.eks BOARD = "cm/" og så kjøre koden som over en gang til for og få cm BOARD.