迭代字典(来自 json)给出不完整的输出
Iteration over dictionary (from json) gives incomplete output
我正在努力从 HPQC 中检索信息,我已成功将其转换为 json 对象,然后又转换为 Python 对象(即字典),但我运行 无法从生成的字典中获取值。
我已经对此进行了大量研究,并且开始获得我需要的信息...但不是全部。
我正在使用的 json/dict 的一般结构如下:
*'v' indicates contents of the {} above it
Entities:{@Total:81
Entity:[{},{},{},...,{}]
v
{@Type:<type>
Fields:{}
} v
{Field:[{},{},{},...,{}]
} v
{@Name:<name>
Value:<value
}
}
如上所述,我可以使用以下代码打印出名称和值:
with requests.Session() as req:
req.post(authenticate_url, verify=False, auth=(usnm, pswd))
request = req.get(url, verify=False)
# responseToJSON just converts the response object to a JSON and then to a python object
request = responseToJSON(request)
for entry in js_dict[u'Entities'][u'Entity']:
for nest_entry in entry[u'Fields'][u'Field']:
print nest_entry[u'@Name']
# Not all Names have a Value
if u'Value' in nest_entry:
print " " * 4, nest_entry[u'Value']
else:
print " " * 4, "No Value!"
根据@Total 值,应该有 81 "Entity" 个词典,每个 Fields-Field-Name/Value。我在此处之前使用的 for 循环仅打印出每个 Field dict 的名称和值,总共给我 15 个结果。使用当前版本,我设法将其增加到 23。
我在 for 循环之前使用的同一个请求进程中将 json 对象导出到一个文件,所有 81 个 "Entity" 对象肯定都在那里,所以它不应该是一个数据检索不完整的问题。
是否有某种支票或我遗漏的东西?还是由于某种原因大量物体会导致它提前停止?还是完全不同?
经过进一步的搜索和思考,我认为可能不是 json/dictionary 不完整,而是 Eclipse 的控制台。果然,Eclipse 中的控制台(我正在使用)有一个缓冲区限制,在禁用该选项后,我的完整预期输出正确显示。
我最终使用的解决方案来自这个答案:
我正在努力从 HPQC 中检索信息,我已成功将其转换为 json 对象,然后又转换为 Python 对象(即字典),但我运行 无法从生成的字典中获取值。
我已经对此进行了大量研究,并且开始获得我需要的信息...但不是全部。
我正在使用的 json/dict 的一般结构如下:
*'v' indicates contents of the {} above it
Entities:{@Total:81
Entity:[{},{},{},...,{}]
v
{@Type:<type>
Fields:{}
} v
{Field:[{},{},{},...,{}]
} v
{@Name:<name>
Value:<value
}
}
如上所述,我可以使用以下代码打印出名称和值:
with requests.Session() as req:
req.post(authenticate_url, verify=False, auth=(usnm, pswd))
request = req.get(url, verify=False)
# responseToJSON just converts the response object to a JSON and then to a python object
request = responseToJSON(request)
for entry in js_dict[u'Entities'][u'Entity']:
for nest_entry in entry[u'Fields'][u'Field']:
print nest_entry[u'@Name']
# Not all Names have a Value
if u'Value' in nest_entry:
print " " * 4, nest_entry[u'Value']
else:
print " " * 4, "No Value!"
根据@Total 值,应该有 81 "Entity" 个词典,每个 Fields-Field-Name/Value。我在此处之前使用的 for 循环仅打印出每个 Field dict 的名称和值,总共给我 15 个结果。使用当前版本,我设法将其增加到 23。
我在 for 循环之前使用的同一个请求进程中将 json 对象导出到一个文件,所有 81 个 "Entity" 对象肯定都在那里,所以它不应该是一个数据检索不完整的问题。
是否有某种支票或我遗漏的东西?还是由于某种原因大量物体会导致它提前停止?还是完全不同?
经过进一步的搜索和思考,我认为可能不是 json/dictionary 不完整,而是 Eclipse 的控制台。果然,Eclipse 中的控制台(我正在使用)有一个缓冲区限制,在禁用该选项后,我的完整预期输出正确显示。
我最终使用的解决方案来自这个答案: