【问题标题】:Parsing JSON-RPC using Python使用 Python 解析 JSON-RPC
【发布时间】:2015-05-02 00:30:26
【问题描述】:

我有一个 JSON-RPC 格式: [{"priority": "0", "actionsList": [{"type": "OUTPUT", "port": 2}], "match": { “通配符”: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}},{“优先级”:“0”,“actionsList”:[{“type”:“OUTPUT”,“端口”:3}],“匹配”:{“通配符”: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 做了什么?
  • 它实际上是写Nonetype而不是NoneType吗?如果是这样,那是某人创建的与None 的类型无关的类。 (虽然我无法想象为什么有人会做如此令人困惑的事情,但这样做是合法的。)另外,您确定 JSON 输出来自print flowTableJSON,而不是来自其他一些在你的程序中声明? (如果是,为什么你确定?)
  • 更重要的是,您可以只复制并粘贴输出而不是描述它吗?

标签: python json rpc nonetype


【解决方案1】:

我敢打赌,问题在于do_func 只是打印出 JSON 并且不返回任何内容。所以,flowTableJSONNone,所以它的类型是NoneType,这是在 JSON 之后打印的。

我知道你说 NoneType 在 JSON 之前打印,但你也说它是 Nonetype,我认为这不太可能,所以我猜你只是没有给予足够的关注。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2023-04-02
    • 2020-09-20
    • 2016-07-17
    相关资源
    最近更新 更多