我正在尝试编写一个简短的程序,它将读取我的Exchange/Outlook配置文件中的文件夹中的电子邮件内容,以便我可以操作数据.但是我在查找有关python和Exchange/Outlook集成的大量信息时遇到了问题.很多东西要么很老/没有文档/没有解释.我尝试了几个片段,但似乎得到了同样的错误.我试过Tim Golden的代码:
import win32com.client
session = win32com.client.gencache.EnsureDispatch ("MAPI.Session")
#
# Leave blank to be prompted for a session, or use
# your own profile name if not "Outlook". It is also
# possible to pull the default profile from the registry.
#
session.Logon ("Outlook")
messages = session.Inbox.Messages
#
# Although the inbox_messages collection can be accessed
# via getitem-style calls (inbox_messages[1] etc.) this
# is the recommended approach from Microsoft since the
# Inbox can mutate while you're iterating.
# …
Run Code Online (Sandbox Code Playgroud) 我正在设计一个小的GUI应用程序来包装一个sqlite DB(简单的CRUD操作).我已经创建了三个SQLAlchemy的模型(m_person
,m_card.py
,m_loan.py
,全部在/models
文件夹中)和以前曾在每一个顶部以下代码:
from sqlalchemy import Table, Column, create_engine
from sqlalchemy import Integer, ForeignKey, String, Unicode
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import backref, relation
engine = create_engine("sqlite:///devdata.db", echo=True)
declarative_base = declarative_base(engine)
metadata = declarative_base.metadata
Run Code Online (Sandbox Code Playgroud)
这感觉有点不对(干)所以有人建议我将所有这些东西移到模块级别(进入models/__init__.py
).
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Table, Column, Boolean, Unicode
from settings import setup
engine = create_engine('sqlite:///' + setup.get_db_path(), echo=False)
declarative_base = declarative_base(engine)
metadata = declarative_base.metadata …
Run Code Online (Sandbox Code Playgroud) python sqlalchemy declarative relational-database python-import
var_list = [one, two, three]
num = 1
for var in var_list:
var = num
num += 1
Run Code Online (Sandbox Code Playgroud)
上面给出了一个"一"不存在的错误.你不能这样分配吗?我想为列表中的每个var分配一个递增的数字.
有没有人知道查询docker守护程序使用的嵌入式DNS服务器的方法.我正在尝试使用packetbeats,如果我可以用容器名称替换docker ip地址,那将会非常有用.
我目前可以想到的唯一方法是在容器中创建一个dns服务器,可以将其配置为主机的dns服务器,以确保主机可以解析容器名称.希望有道理吗?
这是唯一的方式还是有其他选择?
我正在尝试查询的容器是使用docker-compose创建的.
我有一个看起来像这样的 docker 文件。如何从主机访问此卷?我检查了安装 Docker 的卷文件夹。
FROM busybox
MAINTAINER Erik Kaareng-sunde <esu@enonic.com>
RUN mkdir -p /enonic-xp/home
RUN adduser -h /enonic-xp/ -H -u 1337 -D -s /bin/sh enonic-xp
RUN chown -R enonic-xp /enonic-xp/
VOLUME /enonic-xp/home
ADD logo.txt /logo.txt
CMD cat /logo.txt
Run Code Online (Sandbox Code Playgroud)
ls
$ docker volume ls
DRIVER VOLUME NAME
local b4e99290fd4d5f7a3fe700ae9b616c2e66b1f758c497662415cdb47905427719
Run Code Online (Sandbox Code Playgroud)
我希望能够进入该卷。
inspect
docker volume inspect b4e99290fd4d5f7a3fe700ae9b616c2e66b1f758c497662415cdb47905427719
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/b4e99290fd4d5f7a3fe700ae9b616c2e66b1f758c497662415cdb47905427719/_data",
"Name": "b4e99290fd4d5f7a3fe700ae9b616c2e66b1f758c497662415cdb47905427719",
"Options": {},
"Scope": "local"
}
]
Run Code Online (Sandbox Code Playgroud) 我有一个SpringBoot应用程序,它的Dockerfile如下.我有针对不同环境的application.properties,例如local/dev/qa/prod.当我在IDE中本地运行应用程序时,我在VM选项中传递-Dspring.profiles.active = local,以便它加载application-local.properties.为了作为docker容器运行,我构建了一个包含所有application.properties的映像.即它只是所有环境的SAME泊坞窗图像.
当我在一个环境中运行图像时,我想以某种方式让SpringBoot理解它的dev env,所以它必须加载application-dev.properties.我使用AWS ECS来管理容器.
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/sample-test-sb-sample-app-1.0-exec.jar app.jar
EXPOSE 8080
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
Run Code Online (Sandbox Code Playgroud) 这是关于OOP的一个非常基本的问题(我使用python但实际上它是一个概念性问题,所以不是特定于语言).我环顾四周,但没有教程或书籍涵盖这个具体问题.如果我不清楚,我道歉,并乐意澄清我写的任何内容.
假设我正在创建一个简单的地址簿,我想用pickle写入磁盘.我有一个类Contact
,其中包含__init__
一些args(firstName和lastName),我有一个菜单,您可以在其中创建联系人,编辑它们等.对于OOP的所有示例,我看到他们会做类似的事情......
bob = Contact('Bob', 'Smith')
jane = Contact('Jane', 'Smith')
Run Code Online (Sandbox Code Playgroud)
...创建新的联系实例.但这些都是在运行时之前定义的.当我想通过用户输入动态创建所有这些实例时会发生什么?我是否为每个人创建新实例?我如何从用户输入中执行此操作?然后只需将所有实例写入列表并腌制它?或者你做的事......
firstName, lastName = raw_input("Enter first name: "), raw_input("Enter last name: ")
contact = Contact(firstName, lastName)
Run Code Online (Sandbox Code Playgroud)
...然后只需将联系人附加到列表中,并在每次要添加用户时获取联系人实例的新值?这是一个我没有真正得到的关键概念(因为我没有看到它在任何地方解释过).我见过的所有示例都不会执行上述操作,而是为每个事物/人创建新实例,但所有实例都是预先定义的,而不是动态创建的.我真的很感激有人向我解释这个概念.
我正在使用栅格化器将两块面板放在一个框架内.
control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)
frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)
Run Code Online (Sandbox Code Playgroud)
我希望control_panel位于main_panel之上(如上所示).然而,这是我得到的输出:
当我指出相反的情况时,我不知道为什么顶部面板比底部面板大得多.(2,5)为顶部,(5,5)为底部.它也有一个奇怪的行为,当我调整它更小,它基本上给了我想要的东西(见下图),但我不知道如何保持比率,当我再次变大.
然而,当您开始调整大小(即使是少量)时,您可以看到(下方)形状和比率在另一个方向上发生显着变化(底部变得更小,顶部变得更大).
仍然试图学习这个sizer,并且无法用我见过的任何例子找到这个问题.还尝试了所有参数并做了一些测试,我无法弄清楚这里发生了什么.任何帮助将非常感激.
编辑:下面的图片添加,以帮助评论如下.
我使用多个转换库将 xml 转换为 JSON,得到以下结果。如您所见,属性名称属性丢失了,项目名称属性也丢失了。为什么?
有没有人建议我如何更改我的 XML 以使其更易于转换?
<Asset name="xyz">
<Property name="p1">Value 1</Property>
<Property name="p2">Value 2</Property>
<TimeSeries name="TimeSeries Name 1">
<Item name="30 Apr 2009">97.47219</Item>
<Item name="01 May 2009">97.16496</Item>
<Item name="05 May 2009">97.34606</Item>
</TimeSeries>
</Asset>
Run Code Online (Sandbox Code Playgroud)
返回:
{
"Asset": {
"@attributes": {
"name": "xyz"
},
"Property": ["Value 1", "Value 2"],
"TimeSeries": {
"@attributes": {
"name": "TimeSeries Name 1"
},
"Item": ["97.47219", "97.16496", "97.34606"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但 XML 和 JSON 都更加冗长:
<Asset name="xyz">
<Property><name>p1</name><value>Value 1</value></Property>
<Property><name>p2</name><value>Value 2</value></Property>
<TimeSeries name="TimeSeries Name 1">
<Item><date>30 Apr …
Run Code Online (Sandbox Code Playgroud) 我是SQLAlchemy的新手,并阅读了基本文档.我目前正在关注Mike Driscoll的MediaLocker教程并根据自己的目的修改/扩展它.
我有三张桌子(贷款,人,卡).贷款卡和贷款人都是一对多的关系,并建模如下:
from sqlalchemy import Table, Column, DateTime, Integer, ForeignKey, Unicode
from sqlalchemy.orm import backref, relation
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine("sqlite:///cardsys.db", echo=True)
DeclarativeBase = declarative_base(engine)
metadata = DeclarativeBase.metadata
class Loan(DeclarativeBase):
"""
Loan model
"""
__tablename__ = "loans"
id = Column(Integer, primary_key=True)
card_id = Column(Unicode, ForeignKey("cards.id"))
person_id = Column(Unicode, ForeignKey("people.id"))
date_issued = Column(DateTime)
date_due = Column(DateTime)
date_returned = Column(DateTime)
issue_reason = Column(Unicode(50))
person = relation("Person", backref="loans", cascade_backrefs=False)
card = relation("Card", backref="loans", cascade_backrefs=False) …
Run Code Online (Sandbox Code Playgroud) 我正在使用tornado(以及第三方tornadows模块)实现SOAP Web服务.我服务中的一个操作需要调用另一个操作,所以我有链:
因为它全部在一个服务中运行,所以它在某处被阻止.我不熟悉龙卷风的异步功能.
只有一个请求处理方法(post),因为所有内容都在单个url上,然后根据SOAPAction请求头值调用特定操作(处理方法).我用@ tornado.web.asynchronous修饰了我的post方法,最后调用了self.finish()但没有骰子.
龙卷风可以处理这种情况,如果可以,我该如何实现它?
编辑(添加代码):
class SoapHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def post(self):
""" Method post() to process of requests and responses SOAP messages """
try:
self._request = self._parseSoap(self.request.body)
soapaction = self.request.headers['SOAPAction'].replace('"','')
self.set_header('Content-Type','text/xml')
for operations in dir(self):
operation = getattr(self,operations)
method = ''
if callable(operation) and hasattr(operation,'_is_operation'):
num_methods = self._countOperations()
if hasattr(operation,'_operation') and soapaction.endswith(getattr(operation,'_operation')) and num_methods > 1:
method = getattr(operation,'_operation')
self._response = self._executeOperation(operation,method=method)
break
elif num_methods == 1:
self._response = self._executeOperation(operation,method='')
break
soapmsg = self._response.getSoap().toprettyxml()
self.write(soapmsg) …
Run Code Online (Sandbox Code Playgroud) python ×6
docker ×3
sqlalchemy ×2
asp.net ×1
asynchronous ×1
cdo.message ×1
declarative ×1
dns ×1
dockerfile ×1
javascript ×1
json ×1
list ×1
loops ×1
mapi ×1
oop ×1
outlook ×1
packetbeat ×1
persistence ×1
primary-key ×1
sizer ×1
spring ×1
spring-boot ×1
tornado ×1
variables ×1
web-services ×1
wxpython ×1
xml ×1