如何在 qtextbox 中显示 json 数据
How can I display json data in a qtextbox
例如,我有这个 json 从文件中读入的数据:
{"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}
然后如何在带有格式化缩进的编辑文本框中显示它
{
"name":"Gilbert",
"wins":[
[
"straight",
"7"
],
[
"one pair",
"10"
]
]
}
这不是您指定的精确格式,但是 pprint.pformat
和适当的 width
值会生成格式良好的字符串,然后您可以将其插入文本框:
import pprint
s = pprint.pformat({"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]},
width=25)
结果:
>>> print(s)
{'name': 'Gilbert',
'wins': [['straight',
'7'],
['one pair',
'10']]}
您可以使用 json.dumps()
并将结果放入您的文本框中来完成此操作。
一个简单的例子(没有 pyside):
import json
s = """{"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}"""
print(json.dumps(j, indent=4, sort_keys=True))
结果:
{
"name": "Gilbert",
"wins": [
[
"straight",
"7"
],
[
"one pair",
"10"
]
]
}
如果不是 print
将 json.dumps()
的结果分配给变量:
p = json.dumps(j, indent=4, sort_keys=True)
您现在可以使用 QTextEdit
的 setText()
slot
将文本框的内容设置为 p
使用json库
import json
from PySide.QtGui import QApplication
from PySide.QtGui import QTextEdit
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
s = {"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}
js = json.dumps(s, indent=4, sort_keys=True)
w = QTextEdit()
w.setText(js)
w.show()
sys.exit(app.exec_())
例如,我有这个 json 从文件中读入的数据:
{"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}
然后如何在带有格式化缩进的编辑文本框中显示它
{
"name":"Gilbert",
"wins":[
[
"straight",
"7"
],
[
"one pair",
"10"
]
]
}
这不是您指定的精确格式,但是 pprint.pformat
和适当的 width
值会生成格式良好的字符串,然后您可以将其插入文本框:
import pprint
s = pprint.pformat({"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]},
width=25)
结果:
>>> print(s)
{'name': 'Gilbert',
'wins': [['straight',
'7'],
['one pair',
'10']]}
您可以使用 json.dumps()
并将结果放入您的文本框中来完成此操作。
一个简单的例子(没有 pyside):
import json
s = """{"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}"""
print(json.dumps(j, indent=4, sort_keys=True))
结果:
{
"name": "Gilbert",
"wins": [
[
"straight",
"7"
],
[
"one pair",
"10"
]
]
}
如果不是 print
将 json.dumps()
的结果分配给变量:
p = json.dumps(j, indent=4, sort_keys=True)
您现在可以使用 QTextEdit
的 setText()
slot
p
使用json库
import json
from PySide.QtGui import QApplication
from PySide.QtGui import QTextEdit
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
s = {"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}
js = json.dumps(s, indent=4, sort_keys=True)
w = QTextEdit()
w.setText(js)
w.show()
sys.exit(app.exec_())