2016-11-23 39 views
0

我有api輸出問題。由於該網頁說它是一個JSON,但突然他切換到字符串? 輸出看起來像這樣python Api輸出json /字符串

{'terms': 
[{'start_date':'2013-09-30', 
'finish_date': '2014-03-02', 
'end_date': '2014-01-31', 
'order_key': 420, 
'name': {'pl': 'Semestr zimowy 2013/14', 'en': 'Winter Semester 2013/14'}, 
'id': '2013Z'}, 
. 
. 
. 
{'start_date': '2017-09-25', 
'finish_date': '2018-02-19', 
'end_date': '2018-01-29', 
'order_key': 540, 
'name': {'pl': 'Semest zimowy 2017/2018', 'en': 'Winter Semester 2017/18'}, 'id': '2017Z'}], 

,然後像第二款是這樣

'groups': 
{'2015Z': 
[{'relationship_type': 'participant', 
'course_name': {'pl': 'Algorytmy i struktury danych', 'en': 'Algorithms and Data Structures'}, 
'term_id': '2015Z'}, 
. 
. 
. 
{'relationship_type': 'participant', 
'course_name': {'pl': 'Wychowanie fizyczne 1', 'en': 'Gymnastics 1'}, 
'term_id': '2015Z'}] 

全輸出得到+1000的話,所以我決定把它的方式。我的問題是,我可以從terms得到任何數據,但是當我嘗試從groups獲得任何數據時,pycharms表示這些是字符串。我的代碼看起來像這樣

data = polaczenie.get('/services/groups/user', 
fields='course_name|class_type|class_type_id|group_number', format='json') 
mylist = [] 
mylist2 = [] 
for i in data['terms']: 
    mylist.append(i['id']) 
print(mylist) 
for i in data['groups']: 
    mylist2.append(i['course_name']) 
print(mylist2) 

第一個循環得到精細的數據,不過第二就給我以下錯誤

mylist2.append(i['term_id']) TypeError: string indices must be integers

按我的理解錯誤,我的JSON突然變得字符串?我不知道如何修復它,我的目標是獲得course_nameterm_id

+0

爲了接受答案,您可以使用帖子旁邊的複選標記。 –

回答

0
for i in data['groups']['2015Z']: 
    mylist2.append(i['course_name']) 
+0

謝謝你soo:>我真的是python中的json中的begginer ^^ – Vesspe

+0

json很難閱讀,你可能需要使用pprint庫來獲得可讀的json文件,並且請接受我的答案。 –