2017-01-04 50 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做所有的转换你。