2017-01-04 49 views
0

我的問題是: 我打電話給服務器API和答案是一個JSON文件(與base64編碼) 我想將JSON轉換爲數組,我想使用此數組PyQt QListWidget。Python的JSON陣列和PyQt QListWidget

PyQt的列表例如:

Line1: TEST1-TEST NAME1 
Line2: TEST2-TEST NAME2 
Line3: TEST3-TEST NAME3 
etc. 

這是我的代碼的base64解碼後:

text_json=base64.b64decode(response) 
data=json.loads(text_json) 
print(data) 

這是JSON(數據):

{u'resp': [{u'short_name': u'TEST1', u'long_name': u'TEST NAME1'}, 
{u'short_name': u'TEST2', u'long_name': u'TEST NAME2'}, 
{u'short_name': u'TEST3', u'long_name': u'TEST NAME3'}]} 

這是我的PyQt代碼:

self.List=QtGui.QListWidget(self) 
self.List.resize(500,500) 
self.List.move(0,0) 
self.List.addItem() 
self.List.show() 

我的問題: 我想將JSON轉換爲數組,但是這個JSON文件是unicode格式的。我的計劃:如果我有數組,我知道數組的數量。我可以將數組元素添加到PyQt列表中。 (我最大的問題是Python字典)但如何將JSON轉換爲數組?或者如何解析Python字典? 或者有沒有簡單的解決方案?

+1

你能更清楚地解釋python字典是什麼問題嗎? – ekhumoro

回答

1

您在data[resp]中獲得了您的姓名。你可以這樣做是爲了long_name s添加到您的列表:

self.List=QtGui.QListWidget(self) 
self.List.resize(500,500) 
self.List.move(0,0) 
for person in data["resp"]: 
    item = QtGui.QListWidgetItem(person["long_name"]) 
    self.List.addItem(item) 
self.List.show() 

Here是一些文檔,這可能有助於。

0

您可以將數據只加載直入像這樣的列表控件:

for item in data['resp']: 
    self.List.addItem('%(short_name)s - %(long_name)s' % item) 

Unicode是沒有問題的,因爲json做所有的轉換你。