Python 如何在qtextbox中显示json数据

Python 如何在qtextbox中显示json数据,python,pyside,Python,Pyside,例如,我有一个从文件中读取的json数据: {"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]} 如何在带有格式缩进的编辑文本框中显示 { "name":"Gilbert", "wins":[ [ "straight", "7" ], [ "one pair", "10"

例如,我有一个从文件中读取的json数据:

{"name": "Gilbert", "wins": [["straight", "7"], ["one pair", "10"]]}
如何在带有格式缩进的编辑文本框中显示

{  
   "name":"Gilbert",
   "wins":[  
      [  
         "straight",
         "7"
      ],
      [  
         "one pair",
         "10"
      ]
   ]
}

它不是您指定的精确格式,而是带有适当宽度值的
pprint.pformat
生成格式良好的字符串,然后您可以将其插入文本框:

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']]}

它不是您指定的精确格式,而是带有适当宽度值的
pprint.pformat
生成格式良好的字符串,然后您可以将其插入文本框:

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']]}
您可以通过使用并将结果放入文本框来实现这一点

一个简单的例子(没有pyside):

结果:

{
    "name": "Gilbert",
    "wins": [
        [
            "straight",
            "7"
        ],
        [
            "one pair",
            "10"
        ]
    ]
}
如果将
json.dumps()
的结果分配给变量,而不是
print
ing:

p = json.dumps(j, indent=4, sort_keys=True)
现在,您可以使用
QTextEdit
将文本框的内容设置为
p
,您可以使用并将结果放入文本框中来完成此操作

一个简单的例子(没有pyside):

结果:

{
    "name": "Gilbert",
    "wins": [
        [
            "straight",
            "7"
        ],
        [
            "one pair",
            "10"
        ]
    ]
}
如果将
json.dumps()
的结果分配给变量,而不是
print
ing:

p = json.dumps(j, indent=4, sort_keys=True)

现在,您可以使用
QTextEdit
的使用json库将文本框的内容设置为
p

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

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_())

谢谢安迪,我无法在平板电脑上格式化:)qtextbox或qtextedit??谢谢安迪,我无法在平板电脑上格式化:)qtextbox或qtextedit??