使用SQLAlchemy,我试图以类似于以下的方式打印出每个模型的所有属性:
SELECT * from table;
Run Code Online (Sandbox Code Playgroud)
但是,我想在每个模型实例信息中做一些事情.到目前为止,我能够提出的最好的是:
for m in session.query(model).all():
print [getattr(m, x.__str__().split('.')[1]) for x in model.__table__.columns]
# additional code
Run Code Online (Sandbox Code Playgroud)
这将给我我正在寻找的东西,但它是一个相当迂回的方式得到它.我有点希望得到一个属性:
m.attributes
# or
m.columns.values
Run Code Online (Sandbox Code Playgroud)
我觉得我错过了一些东西,并且有更好的方法可以做到这一点.我这样做是因为我将打印所有内容到.CSV文件,我不想指定我感兴趣的列/属性,我想要一切(很多列都有很多要打印的模型).
我正在尝试使用mocha创建一个独立的测试套件,在一个完美的世界中,我将启动我的express.js应用程序,使用zombie渲染页面,检查一堆东西,然后拆除/杀死express.js应用程序.
有没有简单/最好的方法来做到这一点?
NB.我可以在运行测试之前运行快速应用程序服务器,但如果你不打算剃掉它们,那么Yaks有什么用处.
目前,当我display()在IPython笔记本中使用函数时,我在对象之间插入了换行符:
>>> display('first line', 'second line')
first line
second line
Run Code Online (Sandbox Code Playgroud)
但我希望print()所有内容保持在同一行的行为,例如:
>>> print("all on", "one line")
all onone line
Run Code Online (Sandbox Code Playgroud)
是否有改变display行为的方法来做到这一点?
我想提取,
ID=(?P<group>.+?);
从字符串开始,'ID ='是一个常量,组可以是任何东西.比赛的位置会因字符串而异.
在大多数情况下这很好,但偶尔匹配将在字符串的末尾,并且分号将丢失.在这种情况下,我如何选择匹配字符串的结尾?我尝试了以下方法:
ID=(?P<group>.+?)[;$]
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,我想是因为$不是一个角色(它是一个锚?).
这是使用re模块在Python中完成的,并且已经考虑了所有正常行为,例如使用原始字符串(我认为!).
我希望使用IMAP从电子邮件帐户收件箱中返回n(最可能是10个)最近的电子邮件.
到目前为止,我拼凑了:
import imaplib
from email.parser import HeaderParser
M = imaplib.IMAP4_SSL('my.server')
user = 'username'
password = 'password'
M.login(user, password)
M.search(None, 'ALL')
for i in range (1,10):
data = M.fetch(i, '(BODY[HEADER])')
header_data = data[1][0][1]
parser = HeaderParser()
msg = parser.parsestr(header_data)
print msg['subject']
Run Code Online (Sandbox Code Playgroud)
这回复邮件标题很好,但它似乎是一个半随机的电子邮件集合,而不是最近的10.
如果有帮助,我将连接到Exchange 2010服务器.其他方法也欢迎,IMAP似乎是最合适的,因为我只想阅读不发送的电子邮件.
要使用我的Django应用程序中的相关参数生成一组Javascript变量,我有两个嵌套的for循环:
<script>
{% for model in models %}
{% for item in model.attribute|slice:":3" %}
{% if forloop.first %}
var js_variable{{ forloop.parentloop.counter0 }} = [
{% endif %}
'{{ item.attribute }}' ,
{% if forloop.last %}
{{ item.attribute }} ]
{% empty %}
var js_variable{{ forloop.parentloop.counter0 }} = []
{% endfor %}
{% endfor %}
....code that gets unhappy when js_variable[n] doesn't exist.....
</script>
Run Code Online (Sandbox Code Playgroud)
当{% empty %}发生它似乎没有访问{{ forloop.parentloop. counter0 }}变量,因此变量名称js_variable[n]打印不正确js_variable(没有计数器提供的数字),以后代码抱怨.
是否这个变量在{{ empty …
我有一个脚本使用xlrd模块从excel电子表格中提取数据,特别是row_values()方法.它似乎做得很好,除了之前的VLookups自动生成"#N/A",在这种情况下,xlrd将"#N/A"作为整数42.
我看了一下字符串格式化方法,但看不出那是怎么回事.
除了有一个发现了生命意义的脚本(42)之外,有谁可以建议问题是什么?
干杯
注意:工作表中不再包含Vlookup,所有值都已从其他工作表复制,一切都是普通值,没有公式.
我正在使用SQLAlchemy的ORM端,并且我已经定义了一个列与另一个模型具有外键关系,使用:
Base = declarative_base()
class Model1(Base):
__tablename__ = 'm1'
Name = Column(String, primary_key = True)
info = Column(String)
class Model2(Base):
__tablename__ = 'm2'
Name = Column(String, primary_key = True)
info = Column(String)
other_model = Column(String, ForeignKey('m1.Name'))
Run Code Online (Sandbox Code Playgroud)
但是,我在other_model属性中放置的内容似乎并不重要,似乎非常乐意将它提交到数据库,即使没有Model1具有该实例的实例也是如此Name.
PyCharm的默认选项卡(如in,white space)行为会阻止您插入其认为不合适的其他选项卡.
有人可以建议如何关闭此行为?它大部分时间都有效,但有时您需要返回上一行并插入一个新行.
文件名如下:
filename = u"/direc/tories/español.jpg"
Run Code Online (Sandbox Code Playgroud)
并使用open()作为:
fp = open(filename, "rb")
Run Code Online (Sandbox Code Playgroud)
这将在OSX(10.7)上正确打开文件,但在Ubuntu 11.04上,open()函数将尝试打开u"espa\xf1ol.jpg",这将失败并出现IOError.
通过尝试解决这个问题的过程,我已经检查sys.getfilesystemencoding()了两个系统,两者都设置为utf-8(虽然Ubuntu报告大写,即UTF-8,不确定是否相关).我也设置# -*- coding: utf-8 -*-了python文件,但我确信这只会影响文件本身的编码,而不影响任何外部函数或python如何处理系统资源.该文件存在于两个系统上,并且eñe正确显示.
最后的问题是:如何español.jpg在Ubuntu系统上打开文件?
编辑:español.jpg字符串实际上是通过Django的ORM(ImageFileField)从数据库出来的,但是当我处理它并看到行为上的差异时,我有一个unicode字符串,它是文件的绝对路径.