python字典常用操作以及字典的嵌套_在Python3中操作嵌套的字典/列表树

我正在尝试使用pandoc的JSON-AST格式。在

它的格式是这样的。在[

{

"unMeta": {

"date": {

"t": "MetaInlines", "c": [

{"t": "Str", "c": "2015-08-23"}]},

"version": {

"t": "MetaString", "c": "0.22"},

"author": {

"t": "MetaInlines", "c": [

{"t": "Str", "c": "John"},

{"t": "Space", "c": []},

{"t": "Str", "c": "MacFarlane"}]},

"title": {

"t": "MetaInlines", "c": [

{"t": "Str", "c": "CommonMark"},

{"t": "Space", "c": []},

{"t": "Str", "c": "Spec"}]},

"license": {

"t": "MetaInlines", "c": [

{"t": "Link", "c": [

[

{"t": "Str", "c": "CC-BY-SA"},

{"t": "Space", "c": []},

{"t": "Str", "c": "4.0"}

],

["http://creativecommons.org/licenses/by-sa/4.0/", ""]]

}

]

}

}

},

[

{"t": "Header", "c": [1, ["introduction", [], []], [

{"t": "Str", "c": "Introduction"}]]},

{"t": "Header", "c": [2, ["what-is-markdown", [], []], [

{"t": "Str", "c": "What"},

{"t": "Space", "c": []},

{"t": "Str", "c": "is"},

{"t": "Space", "c": []},

{"t": "Str", "c": "Markdown?"}]]},

{"t": "Para", "c": [

{"t": "Str", "c": "Markdown"},

{"t": "Space", "c": []},

{"t": "Str", "c": "is"},

{"t": "Space", "c": []},

{"t": "Str", "c": "a"},

{"t": "Space", "c": []},

{"t": "Str", "c": "plain"},

{"t": "Space", "c": []},

{"t": "Str", "c": "text"},

{"t": "Space", "c": []},

{"t": "Str", "c": "format"},

{"t": "Space", "c": []},

{"t": "Str", "c": "for"},

{"t": "Space", "c": []},

{"t": "Str", "c": "writing"},

{"t": "Space", "c": []},

{"t": "Str", "c": "structured"},

{"t": "Space", "c": []},

{"t": "Str", "c": "documents,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "based"},

{"t": "Space", "c": []},

{"t": "Str", "c": "on"},

{"t": "Space", "c": []},

{"t": "Str", "c": "conventions"},

{"t": "Space", "c": []},

{"t": "Str", "c": "used"},

{"t": "Space", "c": []},

{"t": "Str", "c": "for"},

{"t": "Space", "c": []},

{"t": "Str", "c": "indicating"},

{"t": "Space", "c": []},

{"t": "Str", "c": "formatting"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "email"},

{"t": "Space", "c": []},

{"t": "Str", "c": "and"},

{"t": "Space", "c": []},

{"t": "Str", "c": "usenet"},

{"t": "Space", "c": []},

{"t": "Str", "c": "posts."},

{"t": "Space", "c": []},

{"t": "Str", "c": "It"},

{"t": "Space", "c": []},

{"t": "Str", "c": "was"},

{"t": "Space", "c": []},

{"t": "Str", "c": "developed"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "2004"},

{"t": "Space", "c": []},

{"t": "Str", "c": "by"},

{"t": "Space", "c": []},

{"t": "Str", "c": "John"},

{"t": "Space", "c": []},

{"t": "Str", "c": "Gruber,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "who"},

{"t": "Space", "c": []},

{"t": "Str", "c": "wrote"},

{"t": "Space", "c": []},

{"t": "Str", "c": "the"},

{"t": "Space", "c": []},

{"t": "Str", "c": "first"},

{"t": "Space", "c": []},

{"t": "Str", "c": "Markdown-to-HTML"},

{"t": "Space", "c": []},

{"t": "Str", "c": "converter"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "perl,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "and"},

{"t": "Space", "c": []},

{"t": "Str", "c": "it"},

{"t": "Space", "c": []},

{"t": "Str", "c": "soon"},

{"t": "Space", "c": []},

{"t": "Str", "c": "became"},

{"t": "Space", "c": []},

{"t": "Str", "c": "widely"},

{"t": "Space", "c": []},

{"t": "Str", "c": "used"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "websites."},

{"t": "Space", "c": []},

{"t": "Str", "c": "By"},

{"t": "Space", "c": []},

{"t": "Str", "c": "2014"},

{"t": "Space", "c": []},

{"t": "Str", "c": "there"},

{"t": "Space", "c": []},

{"t": "Str", "c": "were"},

{"t": "Space", "c": []},

{"t": "Str", "c": "dozens"},

{"t": "Space", "c": []},

{"t": "Str", "c": "of"},

{"t": "Space", "c": []},

{"t": "Str", "c": "implementations"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "many"},

{"t": "Space", "c": []},

{"t": "Str", "c": "languages."},

{"t": "Space", "c": []},

{"t": "Str", "c": "Some"},

{"t": "Space", "c": []},

{"t": "Str", "c": "of"},

{"t": "Space", "c": []},

{"t": "Str", "c": "them"},

{"t": "Space", "c": []},

{"t": "Str", "c": "extended"},

{"t": "Space", "c": []},

{"t": "Str", "c": "basic"},

{"t": "Space", "c": []},

{"t": "Str", "c": "Markdown"},

{"t": "Space", "c": []},

{"t": "Str", "c": "syntax"},

{"t": "Space", "c": []},

{"t": "Str", "c": "with"},

{"t": "Space", "c": []},

{"t": "Str", "c": "conventions"},

{"t": "Space", "c": []},

{"t": "Str", "c": "for"},

{"t": "Space", "c": []},

{"t": "Str", "c": "footnotes,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "definition"},

{"t": "Space", "c": []},

{"t": "Str", "c": "lists,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "tables,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "and"},

{"t": "Space", "c": []},

{"t": "Str", "c": "other"},

{"t": "Space", "c": []},

{"t": "Str", "c": "constructs,"},

{"t": "Space", "c": []},

{"t": "Str", "c": "and"},

{"t": "Space", "c": []},

{"t": "Str", "c": "some"},

{"t": "Space", "c": []},

{"t": "Str", "c": "allowed"},

{"t": "Space", "c": []},

{"t": "Str", "c": "output"},

{"t": "Space", "c": []},

{"t": "Str", "c": "not"},

{"t": "Space", "c": []},

{"t": "Str", "c": "just"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "HTML"},

{"t": "Space", "c": []},

{"t": "Str", "c": "but"},

{"t": "Space", "c": []},

{"t": "Str", "c": "in"},

{"t": "Space", "c": []},

{"t": "Str", "c": "LaTeX"},

{"t": "Space", "c": []},

{"t": "Str", "c": "and"},

{"t": "Space", "c": []},

{"t": "Str", "c": "many"},

{"t": "Space", "c": []},

{"t": "Str", "c": "other"},

{"t": "Space", "c": []},

{"t": "Str", "c": "formats."}]}]]

我如何改变/重新格式化它,以便当"t"和"c"是字典键时,我得到了一个更可读的字典,其中dictionary key t的值是我新字典的键,'c'的值就是我新字典的值。在

成功的结果如下:

^{pr2}$

我目前的策略是这样。在while循环中,我一直在迭代,直到找到"t"和{}作为字典的键,然后我在包含这些键的字典上调用一个函数,该函数返回一个新字典,将found设置为True,并对原始字典值进行右对齐,然后让while循环运行,直到找不到更多实例。有更好的方法吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值