小编Dyl*_*ger的帖子

if <obj>和if <obj>之间的区别不是None

在编写一些XML解析代码时,我收到了警告:

FutureWarning: The behavior of this method will change in future versions.  Use specific 'len(elem)' or 'elem is not None' test instead.
Run Code Online (Sandbox Code Playgroud)

我曾经在那里if <elem>:检查是否找到了给定元素的值.

有人可以详细说明if <obj>:vs 之间的区别if <obj> is not None:以及Python使用的原因吗?

我几乎总是使用前者因为它更短而不是双重否定,但经常在其他人的源代码中看到后者.

python xml-parsing python-2.7

10
推荐指数
2
解决办法
4247
查看次数

有选择地删除Chrome浏览历史记录

是否可以有选择地从Google Chrome浏览历史记录中删除项目?我的历史记录中有一个网站,每次我开始使用特定字母进行搜索时都希望成为默认网站,但我经常会参考我的历史来重新查找内容.

所以我想从www.pythonismyfavoritest.com中删除所有历史记录而不删除所有内容; 那可能吗?

google-chrome browser-history

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

替换索引中使用的函数

当我更改底层函数时,在函数上构建的索引会发生什么?

说,我有一个函数clean_name()定义为:

CREATE OR REPLACE FUNCTION clean_name(n text)
RETURNS TEXT AS
$BODY$
DECLARE
 rec TEXT;
BEGIN
 EXECUTE
  'SELECT Regexp_replace(' || quote_literal(n) || ', ''[a-z]'', '''', ''g'');'
 INTO rec;
RETURN rec;
END;
$BODY$ LANGUAGE plpgsql IMMUTABLE
;
Run Code Online (Sandbox Code Playgroud)

然后创建一个索引:

CREATE INDEX my_table_upper_name_btree
ON schema.my_table USING GIST (my_text_field);
Run Code Online (Sandbox Code Playgroud)

但后来我决定重新定义函数来删除大写字母.我创建的索引会发生什么?它会自行改变吗?难道我DROPCREATE一次?VACUUM [ANALYZE] [FULL]

(有问题的功能是相似的,而是使用相当冗长的一系列替换,这些替换仍在调整但预计会保持稳定.)

postgresql indexing function plpgsql

7
推荐指数
1
解决办法
1938
查看次数

psycopg2:如何知道 cur.rowcount 何时不表示行数?

我正在寻找一种方法来以编程方式确定cur.rowcount描述可获取的行数与受影响的行数之间的差异。

例如:

>>> cur.execute('CREATE TABLE test (gid serial, val numeric);')
>>> cur.execute('INSERT INTO test (val) values (1), (2), (3);')
>>> cur.execute('SELECT * FROM test;'); cur.rowcount
3
>>> cur.execute('UPDATE test SET val = 1;'); cur.rowcount
3
>>> cur.fetchall()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
psycopg2.ProgrammingError: no results to fetch

>>> cur.execute('DELETE FROM test;'); cur.rowcount
3

>>> cur.execute('DROP TABLE test;')
>>> cur.rowcount
-1
Run Code Online (Sandbox Code Playgroud)

使用 Python 2.7 和 psycopg2 2.6.2。

python postgresql psycopg2

7
推荐指数
1
解决办法
3513
查看次数

pyscopg2选择NULL值

如何在Psycopg2中使用字符串替换来处理NULL和非NULL值?

例如:

sql = 'SELECT * FROM table WHERE col = %s;'
possible_params = [1, None]

for x in possible_params:
    print cur.mogrify(sql,(x,))
Run Code Online (Sandbox Code Playgroud)

我需要第一个查询看起来像SELECT * FROM table WHERE col = 1;第二个是功能相当于SELECT * FROM table WHERE col IS NULL;

有诀窍吗?我有很多列可能是NULL或有一个值,因此动态构建SQL是相当麻烦的.

python postgresql psycopg2 postgresql-9.2

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