【问题标题】:Spyder IDE editor multiline string query (Python 3.6)Spyder IDE 编辑器多行字符串查询(Python 3.6)
【发布时间】:2018-12-11 01:06:28
【问题描述】:

我正在尝试创建一个可以与 pandas.read_sql_query 一起使用的 SQL 查询。

query = '''SELECT var1, var2, var3, var4,
        var5, var6, var7, var8, var9
        FROM table 
        WHERE area='there' '''

这在控制台中运行时有效,但是当我尝试在 Spyder 编辑器中执行时,我看到以下内容:

语法错误:扫描三引号字符串时出现 EOF

【问题讨论】:

  • 我不确定这将如何在 Spyder 而不是常规的 Python 解释器中运行。
  • 两者都运行,我刚刚测试过。您正在代码中执行其他操作。请包括回溯。
  • 它在 Spyder 的 IPython 控制台中运行,但在 Spyder 编辑器中使用“运行选择或当前行”时不运行。
  • 为什么在运行单行时希望多行字符串正确运行?我没试过,但这听起来不合理。
  • 来自 RStudio,我期待整个代码块使用“运行选择或当前行”命令运行,但现在意识到您必须突出显示所有要运行的内容。知道任何具有该功能的 Python IDE 吗?

标签: python pandas spyder


【解决方案1】:

这里是 Spyder 维护者)问题是您尝试使用我们的运行选择或当前行功能逐行运行您选择的代码.在代码中运行第一行后,即

query = '''SELECT var1, var2, var3, var4,

很明显你会得到

SyntaxError: EOF while scanning triple-quoted string literal

因为该行不会关闭您开始的字符串。

注意运行选择或当前行需要一个完整 Python语句,即可以像在Python中一样被评估的东西(例如a = 10)。

【讨论】:

    【解决方案2】:

    为了在 spyder 中编写多行 sql 查询,请将 SQL 查询用三个双引号括起来,即 SQL 语句开头的三个双引号和结尾的三个双引号。我可以使用这种方法在 Spyder 中编写与 Pandas 一起使用的多行 SQL 语句。例如

    """ 选择 * 从表名 其中 column_name = 值 """

    【讨论】:

    • 用户提供的代码已经用三引号括起来了。
    【解决方案3】:

    将“there”周围的引号更改为“there”的双引号。

    【讨论】:

    • 同样的事情,在控制台中有效,但在编辑器中运行时无效。 query = '''SELECT var1, var2,var3, var4, File "", line 1 query = '''SELECT var1, var2,var3, var4, ^ SyntaxError: EOF 同时扫描三重- 带引号的字符串文字
    • 如果将最后的 ''' 移到自己的行怎么办?
    猜你喜欢
    • 2019-01-18
    • 1970-01-01
    • 2019-02-13
    • 2018-10-21
    • 2017-08-18
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多