我使用Python 3.6來解析由一堆嵌套字典組成的JSON文件。當我循環JSON時,我期望我的內部循環應該返回一個字典,但是Python告訴我這是一個字符串,我不知道爲什麼。爲什麼這會返回一個字符串而不是字典?
這裏是JSON文件我解析相關摘錄:
"SaveDataList": [
{
"PartyData": {
"ResourceInventory": {
"resources": {
"Herbs": {
"resourceID": "Herbs",
"resourceType": "Herbs",
"amount": 19,
"amountReserved": 0
}
有下的「資源」更多的項目,但你的想法。 這裏是我的代碼來解析JSON:
for x in SaveJSON["SaveDataList"]:
if "SaveGame.GlobalData" in x["$type"]:
for y in x["PartyData"]["ResourceInventory"]["resources"]:
print(y,": ",y["amount"],sep='')
當我這樣做,這是我得到的錯誤「類型錯誤:字符串索引必須是整數」。當我做type(y)
時,它返回<class 'str'>
。當我做type(x)
它返回<class 'dict'>
。我不明白爲什麼。在我看來,應該返回「Herbs」字典對象。
所以真的我的問題是,我怎樣才能得到「資源」下的每個字典對象?謝謝。
是什麼Ÿ本身打印爲? –
'print(y)'顯示草藥 – Cryptomancer
我很難過!你可以打印'x [「PartyData」] [「ResourceInventory」]。另外我不熟悉這個SaveJSON函數。 –