這裏是JSON數據,我有:解析JSON使用Python和if語句
{
"response": {
"status": {
"version": "4.2",
"code": 0,
"message": "Success"
},
"artists": [
{
"name": "Taylor Swift",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:19614945368"
}
],
"hotttnesss": 0.99956,
"id": "ARS54I31187FB46721"
},
{
"name": "Ed Sheeran",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:9189674485"
}
],
"hotttnesss": 0.994265,
"id": "ARSDWSZ122ECCB706A"
},
{
"name": "Calvin Harris",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:19366141168"
}
],
"hotttnesss": 0.990559,
"id": "ARJRB241187FB556A3"
},
{
"name": "Sam Smith",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:313595788739120"
}
],
"hotttnesss": 0.988203,
"id": "ARUZM8A11C8A41519C"
},
{
"name": "Maroon 5",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:5330548481"
}
],
"hotttnesss": 0.984929,
"id": "ARF5M7Q1187FB501E8"
},
{
"name": "Sia",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:10959868407"
}
],
"hotttnesss": 0.983516,
"id": "AR6ENUY1187B994158"
},
{
"name": "David Guetta",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:7619396355"
}
],
"hotttnesss": 0.982656,
"id": "ARH2QI91187FB3788D"
},
{
"name": "Ellie Goulding",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:135027136641"
}
],
"hotttnesss": 0.981786,
"id": "ARKTTJV12592CDA07F"
},
{
"name": "Wiz Khalifa",
"foreign_ids": [
{
"catalog": "facebook",
"foreign_id": "facebook:artist:12138756141"
}
],
"hotttnesss": 0.978492,
"id": "ARN0GFV1187FB508CC"
},
{
"name": "Ariana Grande",
"hotttnesss": 0.978074,
"id": "AROHQCR13244CF7152"
}
]
}
}
我試圖解析「目錄」和「foreign_id」。這裏是我的代碼:
for item in data['response']['artists']:
for row in item['foreign_ids']:
print row['catalog'], row['foreign_id']
的結果是:
facebook facebook:artist:19614945368
facebook facebook:artist:9189674485
facebook facebook:artist:19366141168
facebook facebook:artist:313595788739120
facebook facebook:artist:5330548481
facebook facebook:artist:10959868407
facebook facebook:artist:7619396355
facebook facebook:artist:135027136641
facebook facebook:artist:12138756141
KeyError
Traceback (most recent call last)
<ipython-input-224-cbc34d6d831e> in <module>()
1 for item in data['response']['artists']:
----> 2 for row in item['foreign_ids']:
3 print row['catalog'], row['foreign_id']
KeyError: 'foreign_ids'
我想我知道爲什麼;最後一個數據行沒有「foreign_ids」。如何包含if語句以幫助我避免此錯誤?例如,當沒有名爲「foreign_ids」的數組值時,代碼輸出「無」。
謝謝大家好的建議! – kevin