使用 Python 解析 JSON-RPC

Parsing JSON-RPC using Python

我有一个 JSON-RPC 的形式:[{"priority": "0", "actionsList": [{"type": "OUTPUT" , "port": 2}], "match": {"wildcards": 3145968, "nw_dst": "10.0.0.2", "dl_src": "00:00:00 :00:01:01", "dl_dst": "00:00:00:00:04:02", "dl_vlan": 65535, "nw_src": "10.0.0.1", "in_port": 3}}, {"priority": "0", "actionsList": [{"type": "OUTPUT", "port": 3}], "match": {"wildcards": 3145968, "nw_dst": "10.0.0.1", "dl_src": "00:00:00:00:04:02", "dl_dst": "00:00:00:00:01:01", "dl_vlan": 65535, "nw_src": "10.0.0.2", "in_port": 2}}]

我使用以下代码解析:

flowTableJSON = do_func(gopts, opts, args)
print type(flowTableJSON)
print flowTableJSON
for flow in flowTableJSON:
        print 'in for loop'
        print flow['match']['dl_src']
        print flow['match']['dl_dst']

打印变量flowTableJSON输出上面的例子JSON,而flowTableJSON的类型是Nonetype。一个变量是否可以存储一个值并且是 Nonetype 类型?

本质上,我试图在 JSON 的每个元素中访问存储在 dl_dst 中的值;我该怎么做?

我敢打赌,问题是 do_func 只打印出 JSON 而没有 return 任何东西。所以,flowTableJSONNone,所以它的类型是 NoneType,并且在 JSON.

之后打印

我知道你说 NoneType 在 JSON 之前打印,但你也说它是 Nonetype,我觉得这不太可能,所以我猜你是只是不够重视。