首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python中的JSON键和值调用函数

使用Python中的JSON键和值调用函数
EN

Stack Overflow用户
提问于 2016-07-18 16:35:12
回答 1查看 3.5K关注 0票数 0

我在Linux服务器上运行了一个websocket,以便使用本地网络为连接的客户端服务。我的目标是让客户端控制一些配置。

Web应用程序(由PHP和HTML页面组合而成)充当一个接口,当加载主页时,它使用纯Javascript var socket = new WebSocket("ws://SERVER_NAME:90/");连接到websocket,一个HTML元素=输入‘’text‘应该发送一个具有键和值的JSON对象,如下所示:

变量数据= {}; data.key = input_value; socket.send(JSON.stringify(data));

更清楚的是:假设key是问候语,value是Hello,所以在JSON编码之后,将使用前面提到的web将字符串{"Greeting":"Hello"}发送到服务器,在这里,服务器将其存储在缓冲区STDIN中,直到web套接字脚本读取为止。

Web套接字的Python脚本:

代码语言:javascript
复制
data = json.loads(stdin.readline());
for x in data:
    # the code that run the function Greeting
    pass

一句话:

如何调用函数(问候) which is the JSON-KEY并将参数Hello作为输入参数which is JSON-VALUE传递

我的网络套接字没问题,我可以从任何客户端接收任何字符串,

注意:我知道我可以做一个if /来检查键,如果它包含在数组中,然后调用匹配的函数,但是它是无用的,因为我有很多函数,For..Loop花了很多不想要的时间。

很抱歉有这么长的问题,但是解决这个问题是很有必要的。我很感激每一个帮助或建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-18 16:38:43

通常,您会将这些函数打包到一个dict中:

代码语言:javascript
复制
def greeting(value):
    print "Hello " + str(value)

FUNC_MAP = {
    'Greeting': greeting,
}

然后调用这个函数,

代码语言:javascript
复制
data = json.loads(stdin.readline());
for func_name, value in data.items():
    FUNC_MAP[func_name](value)

当然,您可以在这里进行一些改进(例如,对不存在的函数进行错误处理,等等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38441876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档