扭曲 - 使用json传输数据

时间:2014-07-16 04:39:52

标签: json python-2.7 twisted

我需要在客户端和服务器之间传输数据(对象),Twisted似乎是实现这一目标的好方法。我一直在做很多搜索,但仍然没有找到任何理解基本原理的例子。所以任何简单的代码都会有所帮助。

谢谢!

修改

  • 客户端和服务器都是用python编写的
  • 数据可能很大,所以我需要一个快速,可靠的传输(我已经看过producers,这样好吗?)
  • Flask很棒,但我使用的是另一个框架,所以整个网络都依赖于Twisted。

2 个答案:

答案 0 :(得分:1)

很难说你的问题是关于json,python还是twisted的问题,但是这里有一个概述,一旦知道具体细节就可以了。也许您可以在问题中添加更多信息,以便我们提供更多帮助: - )

re Json:Json只是一个定义了结构的字符串。如果您正在使用python并且有一个要作为json发送的对象,那么您需要使用

将对象转换为json字符串
import json
json.dumps(objectName)

如果您的客户端是javascript,那么您可以使用JSON.stringify(objectname)而不是json.dumps。

如果您打算为客户端使用javascript,那么像jQuery这样的一些框架会让它变得非常简单。

Pythons json.dumps有很多可选参数,其中大部分都是你不需要的。您可以在https://docs.python.org/2/library/json.html

查看选项

Python是python,我假设您知道如何创建和填充对象。您的客户端是python还是javascript还是其他什么?从javascript客户端到python服务器,您很可能会使用Ajax发送请求并获得响应。

Twisted允许您轻松创建将侦听给定端口的服务器,并且当数据到达时,将发生提供接收数据的事件。然后,您可以根据需要对数据执行任何操作。只是要小心阻塞数据库插入之类的东西,因为服务器可能会遗漏一些数据,否则如果你打断它的事件循环就行为不端。 Twisted最初很难学,但它是一个非常强大和可靠的系统,已经得到充分证明。另一个需要考虑的方法是node.js.特别是如果你的客户端不是python。在我看来,节点最初更容易掌握,有成千上万的附加模块可以让你做任何你想要的事情。我使用twisted和node来表示不同的东西。

node.js和twisted都不是用来在没有经过一些研究和实验的情况下快速启动服务器或客户端的软件。正确使用Twisted或Node.js 自信地使用他们所有的功能和善良,需要你做一些研究和工作。

有一些优秀的框架,如Flask,可以用来构建一个服务器,可以响应客户端的许多不同的Ajax调用 - 你可以让一个服务器能够响应几种不同的类型请求而不是为每个Ajax类型提供服务器。

答案 1 :(得分:0)

这是一个小型库,它将一个对象及其所有子节点序列化为JSON,并将其解析回一个完全正常工作的对象:

https://github.com/Toubs/PyJSONSerialization/