使用 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 任何东西。所以,flowTableJSON
是 None
,所以它的类型是 NoneType
,并且在 JSON.
之后打印
我知道你说 NoneType
在 JSON 之前打印,但你也说它是 Nonetype
,我觉得这不太可能,所以我猜你是只是不够重视。
我有一个 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 任何东西。所以,flowTableJSON
是 None
,所以它的类型是 NoneType
,并且在 JSON.
我知道你说 NoneType
在 JSON 之前打印,但你也说它是 Nonetype
,我觉得这不太可能,所以我猜你是只是不够重视。