2016-01-12 11 views
0

陷在python解析中的一個簡單的for循環中,其中一些記錄工作的JSON(返回打印值),而大多數則不。我已經確認JSON記錄確實在'description'節點中有數據。我認爲價值觀被覆蓋了。在Python之後失去JSON循環的值

這裏是循環:

 features = json_record['features'] 
     title_list = [] 
     description_list = [] 
     for i in features: 
      title = i['title'] 
      title_list.append(title) 
      description = i['description'] 
      description_list.append(description) 
      print description_list # this ALWAYS works, and returns the list 
     print description_list # this only SOMETIMES work, else returns nothing 

樣品JSON:

"features":[{"sequence":"0","title":"colors","description":"lighting scenes.","valueOf":"<b>Choose from<\/b><br>favorite lighting scenes."},{"sequence":"1","title":"at your fingertips","description":"light output.","valueOf":"<b>features at your fingertips<\/b><br>light output."}

+1

您可以共享一個輸入/輸出對來說明問題嗎? – Sebastian

+0

@Sebastian補充json – jKraut

+0

所以,這段代碼被多次調用,有時它會打印......什麼?字面上沒有或者可能'']'?如果'「features」列表爲空,你會得到一個空列表。爲了調試,在'for'循環之前添加'assert features',需要功能''來查看你的假設是否正確。 – tdelaney

回答

0

這應該工作,但它仍然沒有明確的目標是什麼。

json_record = { 
    "features": 
     [{"sequence":"0", "title":"colors", "description":"lighting scenes.","valueOf":"<b>Choose from<\/b><br>favorite lighting scenes."}, 
     {"sequence":"1","title":"at your fingertips","description":"light output.","valueOf":"<b>features at your fingertips<\/b><br>light output."} 
     ] 
} 

title_list = [] 
description_list = [] 

[(description_list.append(f["description"]), title_list.append(f["title"])) 
for f in json_record["features"] 
] 
print title_list 
print description_list 
+0

這縮小了代碼,但不會產生'title_list'並且不能解決問題。 OP仍然會看到奇怪的結果。 – tdelaney