小编eks*_*tso的帖子

什么是产生一系列字符的pythonic方法?

在其他语言中,我会使用这样的结构:

a..z
Run Code Online (Sandbox Code Playgroud)

我无法想出比这更好的解决方案:

[chr(x) for x in range(ord("a"), ord("z") + 1)]
Run Code Online (Sandbox Code Playgroud)

是否有更短,更易读的方式来构建这样的列表?

python

9
推荐指数
1
解决办法
213
查看次数

Latin-1和Python中的unicode工厂

我有一个Python 2.6脚本,它使用拉丁文1编码的特殊字符,我从SQL Server数据库中检索.我想打印这些字符,但我有点受限,因为我使用的是一个调用unicode工厂的库,我不知道如何让Python使用除了以外的编解码器ascii.

该脚本是一个简单的工具,可以从数据库返回查找数据,而无需直接在SQL编辑器中执行SQL.我使用PrettyTable 0.5库来显示结果.

脚本的核心是这段代码.我从游标中获得的元组包含整数和字符串数据,并且没有Unicode数据.(我会使用adodbapi而不是pyodbc,这会让我获得Unicode,但adodbapi给了我其他问题.)

x = pyodbc.connect(cxnstring)
r = x.cursor()
r.execute(sql)

t = PrettyTable(columns)
for rec in r:
    t.add_row(rec)
r.close()
x.close()

t.set_field_align("ID", 'r')
t.set_field_align("Name", 'l')
print t
Run Code Online (Sandbox Code Playgroud)

但该Name列可以包含超出ASCII范围的字符.prettytable.pyc当它进入t.add_row调用时,我有时会在第222行收到类似这样的错误消息:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 12: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

这是第222行prettytable.py.它使用unicode,这是我的问题的根源,而不仅仅是在这个脚本中,而是在我编写的其他Python脚本中.

for i in range(0,len(row)):
    if len(unicode(row[i])) > self.widths[i]:   # This is line 222
        self.widths[i] …
Run Code Online (Sandbox Code Playgroud)

python unicode

6
推荐指数
1
解决办法
3万
查看次数

DATEDIFF 如何计算 SQL Server 2005 中的周差?

我想计算两个日期之间的差,如果两个日期的前一个星期日相同,则两个日期被视为同一周的一部分。理想情况下,我想使用DATEDIFF,而不是学习精心设计的习语来计算值。但是当涉及数周时,我不知道它是如何工作的。

以下查询返回 1 和 2。如果您的日历周以星期日开始,即如果您SET DATEFIRST 7预先运行或@@DATEFIRST默认情况下为 7,这可能是有意义的。

SET DATEFIRST 7;
-- SET DATEFIRST 1;

DECLARE
    @d1 DATETIME,
    @d2a DATETIME,
    @d2b DATETIME
;
SELECT
    @d1 = '2010-04-05',   -- Monday
    @d2a = '2010-04-16',  -- Following Friday
    @d2b = '2010-04-18'   -- the Sunday following
;

SELECT
    DATEDIFF(week, @d1, @d2a) AS weekdiff_a   -- returns 1
    ,DATEDIFF(week, @d1, @d2b) AS weekdiff_b  -- returns 2
;
Run Code Online (Sandbox Code Playgroud)

因此,如果SET DATEFIRST 1执行而不是SET DATEFIRST 7. 但不管怎样,返回值都是一样的!

这里发生了什么?我应该怎么做才能获得正确的周差?

sql-server idioms datediff

5
推荐指数
1
解决办法
2万
查看次数

在数据库中查找重复的行

如何找到重复的行?如果last_name是重复字段,我想要显示

last_name frst_name frst_name1 frst_name2 ....  
Run Code Online (Sandbox Code Playgroud)

任何数据库都会这样做,更喜欢oracle.

sql database oracle

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×2

database ×1

datediff ×1

idioms ×1

oracle ×1

sql ×1

sql-server ×1

unicode ×1