2015-08-28 73 views
0

我正在從HPQC檢索信息,我已經成功地將其轉換爲json對象,然後轉換爲Python對象(即字典),但是我遇到麻煩從得到的字典中獲取值。字典上的迭代(來自json)給出了不完整的輸出

我已經做了相當數量的研究,而且我開始獲得所需的信息......但並非全部。

的JSON /字典我工作的總體結構如下:

*'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個「實體」字典,每個字典都帶有字段 - 字段 - 名稱/值。我之前使用的for循環僅在這裏打印出每個Field字典的名稱和值,總共給出了15個結果。使用當前版本,我設法將其增加到23.

我在相同的請求過程中將json對象導出到一個文件中,我在for循環之前立即使用,並且所有81個「實體」對象肯定存在,所以它不應該是一個不完整的數據檢索的問題。

是否有某種檢查或我失蹤的東西?或者由於某種原因,大量的物體會導致它早早停止?還是其他什麼東西?

回答

0

經過一些額外的搜索和思考,我認爲它可能不是不完整的JSON /字典,而是Eclipse的控制檯。果然,Eclipse中的控制檯(我正在使用)具有緩衝區限制,禁用該選項後,我的完整預期輸出正常顯示。

我最終使用的解決方案來自這個答案:https://stackoverflow.com/a/2828293/4739755