我正在尝试解析下面的JSON,并从元素中提取名称和间隔。
reply "[ {
"interface" : [ {
"name" : "ethernet39",
"number" : 39,
"rate" : [ {
"interval" : 45,
"rx-bad-vlan-rate" : 0,
"rx-broadcast-packet-rate" : 0,
"rx-byte-rate" : 0,
"rx-drop-rate" : 0,
"rx-error-rate" : 0,
"rx-multicast-packet-rate" : 0,
"rx-unicast-packet-rate" : 0,
"timestamp" : "2015-06-18T21:59:23.703Z",
"tx-broadcast-packet-rate" : 0,
"tx-byte-rate" : 0,
"tx-drop-rate" : 0,
"tx-error-rate" : 0,
"tx-multicast-packet-rate" : 0,
"tx-unicast-packet-rate" : 0
}, {
"interval" : 45,
"rx-bad-vlan-rate" : 0,
"rx-broadcast-packet-rate" : 0,
"rx-byte-rate" : 0,
"rx-drop-rate" : 0
...
我尝试过以下几种方法:
for x in range(0,len(interfaces)):
for interface in interfaces[x]:
entry = {}
entry['name'] = statistic['name']
for interval in statistic['rate']:
entry['byte_rate'] = interval['rx-byte-rate']
entry['packet_rate'] = interval['rx-unicast-packet-rate']
entry['timestamp'] = interval['timestamp']
entry['droprate'] = interval['rx-drop-rate']
entry['errorrate'] = interval['rx-error-rate']
entries.append(entry)
但是,我总是得到一个错误: TypeError: string索引必须是整数
我做错了什么?在代码中,接口是通过执行json.load()
发布于 2019-06-26 08:31:11
"interface“和”rate“字典值是列表,因此您需要对它们进行索引。
print("name = {}".format(reply["interface"][0]["name"]))
rates = reply["interface"][0]["rate"]
for rates_index in range(len(rates)):
print("rate = {}".format(rates[rates_index]["interval"]))
发布于 2015-06-19 07:49:53
不是应该是界面而不是统计吗??
for x in range(0,len(interfaces)):
for interface in interfaces[x]:
entry = {}
entry['name'] = interface['name']
for interval in interface['rate']:
entry['byte_rate'] = interval['rx-b
https://stackoverflow.com/questions/30927686
复制相似问题