无法解析JSON文件和设计查询中的值

时间:2018-06-04 10:37:17

标签: python json

这是我试图解析的JSON文件。

查询 输出参数将由另一个实例填充,此数据结构是否正确。

先谢谢!!

{
        "bpu_add": [
          {
          "input_parameters":  {
                                   "command_name" : "bpu_add"
                                },

          "output_parameters": {
                                   "bpu_id" : "",
                                   "ran_ip" : "",
                                   "ue_ip"  : ""
                               }
          }
        ]
}

这是我读取此JSON文件的代码

import json
from pprint import pprint

with open('bpu_add.json') as f:
    data = json.load(f)

pprint(data)

data["bpu_add"]["input_parameters"]["command_name"]
ddata["bpu_add"]["output_parameters"]["bpu_id"]
data["bpu_add"] ["output_parameters"]["ran_ip"]
data["bpu_add"] ["output_parameters"]["ue_ip"]

错误

{u'bpu_add': [{u'input_parameters': {u'command_name': u'bpu_add'},
               u'output_parameters': {u'bpu_id': u'',
                                      u'ran_ip': u'',
                                      u'ue_ip': u''}}]}
Traceback (most recent call last):
  File "grpcHandler.py", line 9, in <module>
    data["bpu_add"]["input_parameters"]["command_name"]
TypeError: list indices must be integers, not str

1 个答案:

答案 0 :(得分:2)

使用index访问密钥。 &#34; bpu_add&#34;是一个清单。

<强>实施例

data  = {
        "bpu_add": [
          {
          "input_parameters":  {
                                   "command_name" : "bpu_add"
                                },

          "output_parameters": {
                                   "bpu_id" : "",
                                   "ran_ip" : "",
                                   "ue_ip"  : ""
                               }
          }
        ]
}

print( data["bpu_add"][0]["input_parameters"]["command_name"] )
print( data["bpu_add"][0]["output_parameters"]["bpu_id"] )
print( data["bpu_add"][0]["output_parameters"]["ran_ip"] )
print( data["bpu_add"][0]["output_parameters"]["ue_ip"] )

<强>输出:

bpu_add