Skip to main content
https://travis-ci.org/gerold-penz/python-jsonrpc.svg?branch=master

Installation

pip install python-jsonrpc

HTTP Client Example

#!/usr/bin/env python
# coding: utf-8

import pyjsonrpc

http_client = pyjsonrpc.HttpClient(
    url = "http://example.com/jsonrpc",
    username = "Username",
    password = "Password"
)
print http_client.call("add", 1, 2)
# Result: 3

# It is also possible to use the *method* name as *attribute* name.
print http_client.add(1, 2)
# Result: 3

# Notifications send messages to the server, without response.
http_client.notify("add", 3, 4)

HTTP Server Example

#!/usr/bin/env python
# coding: utf-8

import pyjsonrpc


class RequestHandler(pyjsonrpc.HttpRequestHandler):

    @pyjsonrpc.rpcmethod
    def add(self, a, b):
        """Test method"""
        return a + b


# Threading HTTP-Server
http_server = pyjsonrpc.ThreadingHttpServer(
    server_address = ('localhost', 8080),
    RequestHandlerClass = RequestHandler
)
print "Starting HTTP server ..."
print "URL: http://localhost:8080"
http_server.serve_forever()

CGI Example

#!/usr/bin/env python
# coding: utf-8

import pyjsonrpc

def add(a, b):
    """Test function"""
    return a + b

# Handles the JSON-RPC request and gets back the result to STDOUT
pyjsonrpc.handle_cgi_request(methods = dict(add = add))

Library Usage Example

#!/usr/bin/env python
# coding: utf-8

import pyjsonrpc


class JsonRpc(pyjsonrpc.JsonRpc):

    @pyjsonrpc.rpcmethod
    def add(self, a, b):
        """Test method"""
        return a + b


# 1. Initialize JSON-RPC class
rpc = JsonRpc()

# 2. Create JSON-RPC string with parameters (= request string)
request_json = pyjsonrpc.create_request_json("add", 1, 2)
# request_json = '{"method": "add", "params": [1, 2], "id": "...", "jsonrpc": "2.0"}'

# 3. Call the JSON-RPC function and get back the JSON-RPC result (= response string)
response_json = rpc.call(request_json)
# response_json = '{"result": 3, "id": "...", "jsonrpc": "2.0"}'

# 4. Convert JSON-RPC string to Python objects
response = pyjsonrpc.parse_response_json(response_json)

# 5. Print result or error
if response.error:
    print "Error:", response.error.code, response.error.message
else:
    print "Result:", response.result

CherryPy Example

#!/usr/bin/env python
# coding: utf-8

import cherrypy
from pyjsonrpc.cp import CherryPyJsonRpc, rpcmethod


class Root(CherryPyJsonRpc):

    @rpcmethod
    def add(self, a, b):
        """Test method"""
        return a + b

    index = CherryPyJsonRpc.request_handler


print "Starting HTTP server ..."
print "URL: http://localhost:8080"
cherrypy.quickstart(Root())

Licenses

  • GNU Library or Lesser General Public License (LGPL)

  • MIT License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-jsonrpc-0.10.0.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_jsonrpc-0.10.0-py2-none-any.whl (18.8 kB view details)

Uploaded Python 2

File details

Details for the file python-jsonrpc-0.10.0.tar.gz.

File metadata

File hashes

Hashes for python-jsonrpc-0.10.0.tar.gz
Algorithm Hash digest
SHA256 018b9947ca2c97e24a94c7b3b1be8c450cd89fe76cf3dc6bcc9c0fe17f0a3fcb
MD5 058019bdcc0222c9688ef1dab8502f44
BLAKE2b-256 94e724a062667e4e585529edacdac5fd05ae28d6a67491e737cca7fdfb7a6d17

See more details on using hashes here.

File details

Details for the file python_jsonrpc-0.10.0-py2-none-any.whl.

File metadata

File hashes

Hashes for python_jsonrpc-0.10.0-py2-none-any.whl
Algorithm Hash digest
SHA256 9f3cf64618c1c31f2aa8afeaa4e87136e82a35e75b52ba18eed829ebae5e0ab4
MD5 888efc6982c008a0ee3e6c583802bf74
BLAKE2b-256 b0b2946d052824728ee1791807665590eb1ec473aa0db628478a12b368b0ec21

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 files

0.9.3

2 files

0.8.4

2 files

0.8.3

2 files

0.7.12

2 files

0.7.11

2 files

0.7.10

2 files

0.7.8

1 file

0.7.7

1 file

0.7.6

1 file

0.7.4

1 file

0.7.3

1 file

0.7.1

1 file

0.7.0

1 file

0.6.2

1 file

0.6.1

1 file

0.5.3

1 file

0.5.2

1 file

0.5.1

1 file

0.5.0

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.4

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.6

1 file

0.2.5

0.2.4

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page