繁体   English   中英

Python定义大型查询字符串列表与从文件读取

[英]Python defining a list of large query strings vs reading in from a file

我对在python中处理大型字符串列表时的最佳做法以及性能感到很好奇。 具体来说,我有一个包含以字符串形式包含不同postgreSQL查询的列表,我想知道有关如何初始化列表的最佳实践。 请考虑以下两种方法:

方法1-在代码中创建列表:

query_load = [("SELECT val_1, COUNT(*) as frequency "
     "FROM table "
     "GROUP BY val_1 "
     "ORDER BY val_1 ASC"),

     ("SELECT val_2, COUNT(*) as frequency "
     "FROM table "
     "GROUP BY val_2 "
     "ORDER BY val_2 ASC"),

     ("SELECT val_3, COUNT(*) as frequency "
     "FROM table "
     "GROUP BY val_3 "
     "ORDER BY val_3 ASC"),

     ("SELECT val_4, COUNT(*) as frequency "
     "FROM table "
     "GROUP BY val_4 "
     "ORDER BY val_4 ASC"), 
     ... 
      ]

方法2-将查询从文件读入列表

my_list = [line.rstrip('\n') for line in open("..Desktop/my_queries.txt")]

就可读性和更少的代码行而言,方法2似乎是更好的选择,但我希望与最佳实践保持一致。 另外,将文件逐行读入列表是否会导致性能下降(数量不菲)?

只需使用三引号引起来的字符串即可; SQL不会在意用于使您的Python源可读的空白。

query_load = [
    """
    SELECT val_1, COUNT(*) as frequency
    FROM table
    GROUP BY val_1
    ORDER BY val_1 ASC
    """,

    """
    SELECT val_2, COUNT(*) as frequency
    FROM table
    GROUP BY val_2
    ORDER BY val_2 ASC
    """,

    # etc
]

究竟是对查询进行硬编码还是从外部文件读取查询,实际上是一个单独的问题,仅与源代码的外观有些关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM