首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修复SyntaxError: fix :表达式在python3.7.0中嵌套得太深?

如何修复SyntaxError: fix :表达式在python3.7.0中嵌套得太深?
EN

Stack Overflow用户
提问于 2020-11-13 08:10:22
回答 2查看 8K关注 0票数 1

下面是我的代码片段。在运行python3.7中的代码时,我会得到错误SyntaxError: f-string: expressions nested too deeply。我应该如何重构我的代码?

代码语言:javascript
代码运行次数:0
运行
复制
    GRAPH_QL_FIELDS = """
                cubeId
                title
                deleted
                timeVariableFormat
                statisticalProgram {
                  name
                }
                topics{
                    topicId
                }
              }
    """

    query_topics = (
                f'query cubesWithTopicLink($deleted: Boolean!, $topicId: String, $first: Int, $skip: Int) {{'
                f'dataCubes(where:{AND:[{topics_some: {{topicId: $topicId}}}, {deleted: $deleted}]}, first: $first, skip: $skip) {{'
                f'{GRAPH_QL_FIELDS}'
                f'dataCubesConnection(where: {topics_some: {topicId: $topicId}})'
                f'{{aggregate{{count}}}}'
                f'}}'
            )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-18 15:23:44

您可以使用多行字符串f"""This will work as expected with other nested strings '{3+5}'"""

票数 0
EN

Stack Overflow用户

发布于 2020-11-13 09:26:03

您不能像f-string那样嵌套f'{f"my_var"}',所以应该通过删除嵌套的f-字符串并将它们划分为更多的f-字符串来重构代码。

迪米特里斯·法沙拉基斯·希利亚所述

我不认为格式化的字符串文本允许嵌套(嵌套,我把它理解为f‘{f“.}’)是仔细考虑可能的用例的结果,我更相信它只是为了使它们符合它们的规范而允许的。规范指出,它们位于方括号内,支持完整的Python表达式*。还声明格式化的字符串文本实际上只是在运行时计算的表达式(请参阅这里这里)。因此,只允许格式化字符串文字作为另一个格式化字符串文本中的表达式是有意义的,禁止它将否定对Python表达式的完全支持。您无法找到文档中提到的用例(并且只在测试套件中找到测试用例),因为这可能是实现的一个很好的(副作用)效果,而不是它激励用例。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64817446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档