【问题标题】:Python JSON to array & PyQt QListWidgetPython JSON 到数组 & PyQt QListWidget
【发布时间】:2017-05-19 04:53:08
【问题描述】:

我的问题是: 我调用服务器 API,答案是 JSON 文件(使用 base64 编码) 我想将 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 字典中解析? 还是有更简单的解决方案?

【问题讨论】:

  • 你能更清楚地解释一下python字典有什么问题吗?

标签: python arrays json pyqt qlistwidget


【解决方案1】:

data[resp] 中有您的姓名数组。您可以这样做将long_names 添加到您的列表中:

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 是一些可能有帮助的文档。

【讨论】:

    【解决方案2】:

    您可以像这样直接将数据加载到列表小部件中:

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

    Unicode 不是问题,因为json 会为您完成所有转换。

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2021-08-12
      • 2020-12-29
      • 2023-03-19
      • 2019-04-02
      相关资源
      最近更新 更多