【问题标题】:How do I turn my JSON into something easier to read?如何将我的 JSON 变成更易于阅读的内容?
【发布时间】:2019-08-12 20:03:20
【问题描述】:

我的 Python 脚本连接到 API 并获取一些 JSON。
我一直在尝试漂亮打印、解析、加载、转储,但我还没有弄清楚它们......

现在,当我执行print(request.json()) 时,我得到了这个:

{'info': {'status': 'OK', 'time': {'seconds': 0.050006151199341, 'human': '50 milliseconds'}},
 'datalist': {'total': 1, 'count': 1, 'offset': 0, 'limit': 3, 'next': 1, 'hidden': 0, 'loaded': True, 'list': [
     {'id': 27862209, 'name': 'Fate/Grand Order', 'package': 'com.xiaomeng.fategrandorder',
      'uname': 'komoe-game-fate-go', 'size': 49527668,
      'icon': 'http://pool.img.xxxxx.com/msi8/9b58a48638b480c17135a10810374bd6_icon.png',
      'graphic': 'http://pool.img.xxxxx.com/msi8/3a240b50ac37a9824b9ac99f1daab8c8_fgraphic_705x345.jpg',
      'added': '2017-05-20 10:54:53', 'modified': '2017-05-20 10:54:53', 'updated': '2018-02-12 12:35:51',
      'uptype': 'regular', 'store': {'id': 750918, 'name': 'msi8',
                                     'avatar': 'http://pool.img.xxxxx.com/msi8/c61a8cfe9f68bfcfb71ef59b46a8ae5d_ravatar.png',
                                     'appearance': {'theme': 'grey',
                                                    'description': '❤️ Welcome To Msi8 Store & My Store Will Mostly Be Specialized in Games With OBB File Extension. I Hope You Find What You Are Looking For Here ❤️'},
                                     'stats': {'apps': 20776, 'subscribers': 96868, 'downloads': 25958359}},
      'file': {'vername': '1.14.5', 'vercode': 52, 'md5sum': 'xxxxx', 'filesize': 49527668,
               'path': 'http://pool.apk.xxxxx.com/msi8/com-xiaomeng-fategrandorder-52-27862209-32a264b031d6933514970c43dea4191f.apk',
               'path_alt': 'http://pool.apk.xxxxx.com/msi8/alt/Y29tLXhpYW9tZW5nLWZhdGVncmFuZG9yZGVyLTUyLTI3ODYyMjA5LTMyYTI2NGIwMzFkNjkzMzUxNDk3MGM0M2RlYTQxOTFm.apk',
               'malware': {'rank': 'UNKNOWN'}},
      'stats': {'downloads': 432, 'pdownloads': 452, 'rating': {'avg': 0, 'total': 0},
                'prating': {'avg': 0, 'total': 0}}, 'has_versions': False, 'obb': None,
      'xxxxx': {'advertising': False, 'billing': False}}]}}

但我希望它看起来像这样:

【问题讨论】:

  • from pprint import pprint 然后使用pprint 而不是print
  • 也可以通过jq,命令行来管道

标签: python json python-3.x python-requests pretty-print


【解决方案1】:
>>> import json
>>> a={"some":"json", "a":{"b":[1,2,3,4]}}
>>> print(json.dumps(a, indent=4, sort_keys=True))
{
    "a": {
        "b": [
            1,
            2,
            3,
            4
        ]
    },
    "some": "json"
}

【讨论】:

  • 谢谢!但是这种打印反了……有没有办法保持原来的顺序?
  • 删除 sort_keys arg 或将其设置为 False。请记住,不需要 json 解析器来维护顺序,因此有些可能会被重新排序,因为它不是格式的要求
猜你喜欢
  • 2011-02-04
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 2022-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
相关资源
最近更新 更多