2013-11-22 76 views
0

我是Python的初學者。我遇到麻煩的是,在搜索歌曲並使用該網址在webbrowser.open_new_tab()中播放後,從我的數組中選擇網址。該PY文件是:從json獲取信息並在函數中使用它

import json 
import Link_Class 
import Music_Database 
from pprint import pprint 
m = Link_Class.MusicLink() 
import webbrowser 

search = raw_input("Find this Song: ") 
results= m.searchSong(search) 
pprint(results) 

我的JSON文件是:

{"LinkCollection": 

[{"title":"I Will Always Love You" , 
"artist":"Whitney Houston" , 
"link":"http://www.youtube.com/watch?v=3JWTaaS7LdU", 
"id":1}, 

{"title":"Killing Me Softly" , 
"artist":"Roberta Flack" , 
"link":"http://www.youtube.com/watch?v=LQ2t5e7stVM", 
"id":2} 
]} 

還有更多,但爲了簡單起見,我沒有所有的數據寫在這裏。

回答

0

你只想打開第一個結果嗎?

link = results['LinkCollection'][0]['link'] 
webbrowser.open_new_tab(link) 
+0

是的,我做的。我嘗試這樣做時遇到錯誤。我得到了:Traceback(最近調用最後一次): 文件「C:\ Documents and Settings \ homare \ workspace \ Karaoke \ main.py」,第30行,在 link = results ['LinkCollection'] [0] [ 'link'] TypeError:列表索引必須是整數,而不是str – user2843235

1

可以用json.load很簡單地完成:

with open('your_file.json', 'r') as out: 
    data = json.load(out) 

# then fetch you data 

for song in data['LinkCollection']: 
    if song['title'] == search: 
     webbrowser.open_new_tab(song['link']) 
     break 
+0

視頻沒有出來。我是否需要添加更多代碼來激活它? – user2843235

+0

您是否嘗試打印鏈接以確保找到? – evuez

+0

我不確定如何從數組中打印某些東西。我知道如何做一個清單。 – user2843235