我正在努力从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&#34;实体&#34;字典,每个都有字段 - 字段名称/值。我之前使用的for循环只打印出每个Field dict的名称和值,总共给出了15个结果。在当前版本中,我设法将其增加到23。
我将json对象导出到我在for循环之前使用的同一请求进程中的文件,并且所有81&#34;实体&#34;对象肯定存在,因此不应该是不完整的数据检索问题。
是否有某种检查或我遗漏的东西?或者由于某种原因,大量物体是否会导致它提前停止?或完全不同的东西?
答案 0 :(得分:0)
经过一些额外的搜索和思考,我认为它可能不是json / dictionary不完整的,而是Eclipse的控制台。果然,Eclipse中的控制台(我正在使用)有一个缓冲区限制,在禁用该选项后,我的完整预期输出正确显示。
我最终使用的解决方案来自这个答案:https://stackoverflow.com/a/2828293/4739755