小编Rem*_*emi的帖子

如何使用Python和MySQLdb检索mysql数据库中的表名?

我有一个SQL数据库,我想知道你用什么命令来获取该数据库中的表名列表.

python mysql mysql-python

25
推荐指数
3
解决办法
4万
查看次数

(unicode错误)'unicodeescape'编解码器无法解码字节 - 字符串带'\ u'

编写我的Python 2.6代码,但考虑到Python 3,我认为这是一个好主意

from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)

在一些模块的顶部.换句话说,我要求麻烦(将来要避免它们),但我可能会遗漏一些重要的知识.我希望能够传递表示文件路径的字符串并实例化一个简单的对象

MyObject('H:\unittests')

Python 2.6中,这很好用,不需要使用双反斜杠或原始字符串,即使对于以...开头的目录'\u..',这正是我想要的.在__init__方法我要确保所有的单\OCCURENCES被解释为" \\",包括那些之前的特殊字符,如\a,\b,\f,\n,\r,\t\v(只\x仍然是一个问题).还使用(本地)编码将给定字符串解码为unicode按预期工作.

准备Python 3.x,在编辑器中模拟我的实际问题(从Python 2.6中的干净控制台开始),会发生以下情况:

>>> '\u'
'\\u'
>>> r'\u'
'\\u'
Run Code Online (Sandbox Code Playgroud)

(好到这里:'\u'由控制台使用本地编码进行编码)

>>> from __future__ import unicode_literals
>>> '\u'
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: end of string in escape sequence
Run Code Online (Sandbox Code Playgroud)

换句话说,(unicode)字符串根本不被解释为unicode,也不会使用本地编码自动解码.对于原始字符串也是如此:

>>> r'\u'
SyntaxError: (unicode …
Run Code Online (Sandbox Code Playgroud)

python unicode future-proof

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

dict.get()方法返回一个指针

假设我有这段代码:

my_dict = {}
default_value = {'surname': '', 'age': 0}

# get info about john, or a default dict
item = my_dict.get('john', default_value)

# edit the data
item[surname] = 'smith'
item[age] = 68

my_dict['john'] = item
Run Code Online (Sandbox Code Playgroud)

如果我们现在检查default_value的值,问题就变得清晰了:

>>> default_value
{'age': 68, 'surname': 'smith'}
Run Code Online (Sandbox Code Playgroud)

很明显,它my_dict.get()没有返回default_value 的,而是返回指针(?).

可以通过将代码更改为:

item = my_dict.get('john', {'surname': '', 'age': 0})
Run Code Online (Sandbox Code Playgroud)

但这似乎不是一个很好的方法.有什么想法,评论?

python dictionary pass-by-reference

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

numpy:可以将值分配给子数组吗?

import numpy as np

a = np.zeros((3,2))
ind_row = np.array([0,1])    
a[ind_row, 1]=3
Run Code Online (Sandbox Code Playgroud)

现在,a正如所料:

 [[ 0.  3.]
 [ 0.  3.]
 [ 0.  0.]]
Run Code Online (Sandbox Code Playgroud)

我想为一个子数组赋值a[ind_row, 1],并期望能够如下所示:

a[ind_row, 1][1] = 5
Run Code Online (Sandbox Code Playgroud)

但是,这a保持不变!我为什么要这么想?

python arrays numpy

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