Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:漂亮的打印字符串中的深嵌套大括号(智囊团游戏)_Python_Nested_Text Parsing - Fatal编程技术网

python:漂亮的打印字符串中的深嵌套大括号(智囊团游戏)

python:漂亮的打印字符串中的深嵌套大括号(智囊团游戏),python,nested,text-parsing,Python,Nested,Text Parsing,这是一个长字符串,它嵌套得很深 {HHCAA:{00:GGEDB:{00:FFFFF,01:DFDFF:{... 有关完整字符串,请参见此链接>>> 此字符串与此原始问题相关>>> 如何漂亮地打印字符串,以便我们可以一直打印到最后,并使其成为一个查找表。。。e、 g.我想找到第一个00、01、02、03等等… 请参阅以下摘录: {HHCAA: {00:GGEDB:{00:FFFFF,01:xxxx…}}, 01:DCDCB:{00:EEHFF:xxxx 02:xxxx 03:xxxx 在第

这是一个长字符串,它嵌套得很深

{HHCAA:{00:GGEDB:{00:FFFFF,01:DFDFF:{...
有关完整字符串,请参见此链接>>>

此字符串与此原始问题相关>>>

如何漂亮地打印字符串,以便我们可以一直打印到最后,并使其成为一个查找表。。。e、 g.我想找到第一个
00、01、02、03等等…

请参阅以下摘录:

{HHCAA:
{00:GGEDB:{00:FFFFF,01:xxxx…}},
01:DCDCB:{00:EEHFF:xxxx
02:xxxx
03:xxxx


在第1列中打印的第一个嵌套大括号,缩进5个空格,然后再次缩进..然后再次返回第1列..并再次开始缩进,等等。或者将其制成表格。

Python的标准漂亮打印工具将为嵌套对象创建缩进的多行输出,但不为字符串,因为没有办法知道在“深度嵌套”字符串中预先表示嵌套的内容

假设大括号(
{
}
)是定义嵌套的分隔符,则有两个选项:

  • 将字符串转换为python字典并使用
    pprint.pprint
  • 编写您自己的工具来解析字符串并生成输出。如果您只对大括号感兴趣,您只需要维护一个跟踪嵌套级别的计数器,
    {
    递增,
    }递减
    。这使您可以随时计算所需的缩进。如果您在示例中发现
    {
    时不总是移动到新行,则需要添加一些逻辑

  • 尝试导入pprint;pprint.pprint(数据)尝试过(现在)…但这对我来说并没有什么意义..我可能做错了吗?
    {HHCAA:{00:GGEDB:{00:FFFFF,01:
    (仍然以相同的样式打印)谢谢你的输入。我设法使用
    pyparsing
    模块和
    pprint
    以及gvim来获得我想要的东西。(部分自动和部分手动)。改进后,我将在这里分享我的解决方案。pyparsing示例代码:
    t1=pp.nestedExpr(opener='{',closer='}')。parseString(mytext);lst_t1=t1.asList();pprint.pprint(lst_t1,indent=4)
    然后还原为gvim,以可视化缩进并使用缩进模式匹配进行搜索。