我正在尝试使用strptime方法将格式为"2012-07-24T23:14:29-07:00"的时间戳转换为python中的datetime对象.问题在于结束时的时间偏移(-07:00).没有偏移我可以成功做到
time_str = "2012-07-24T23:14:29"
time_obj=datetime.datetime.strptime(time_str,'%Y-%m-%dT%H:%M:%S')
Run Code Online (Sandbox Code Playgroud)
但随着我尝试的抵消
time_str = "2012-07-24T23:14:29-07:00"
time_obj=datetime.datetime.strptime(time_str,'%Y-%m-%dT%H:%M:%S-%z').
Run Code Online (Sandbox Code Playgroud)
但是它给出了一个Value错误,说"z"是一个糟糕的指令.
任何解决方案的想法?
GitHub API提供了一种获取组织成员的方法.我是我的组织的管理员/所有者,我想获得所有用户的电子邮件地址.我尝试使用membersAPI但它没有返回电子邮件地址.
在我的管理员中使用curl auth-token:
GET /orgs/my-org/members
Run Code Online (Sandbox Code Playgroud)
我得到的响应看起来像这样(对于其中一个用户)
"login": "auny",
"id": some-number,
"avatar_url": "https://secure.gravatar.com/avatar/6579d09c459f1adad8a60463f47eadd3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png",
"gravatar_id": "6579d09c459f1adad8a60463f47eadd3",
"url": "https://api.github.com/users/auny",
"html_url": "https://github.com/auny",
"followers_url": "https://api.github.com/users/auny/followers",
"following_url": "https://api.github.com/users/auny/following{/other_user}",
"gists_url": "https://api.github.com/users/auny/gists{/gist_id}",
"starred_url": "https://api.github.com/users/auny/starred{/owner}
{/repo}",
"subscriptions_url": "https://api.github.com/users/auny/subscriptions",
"organizations_url": "https://api.github.com/users/auny/orgs",
"repos_url": "https://api.github.com/users/auny/repos",
"events_url": "https://api.github.com/users/auny/events{/privacy}",
"received_events_url":
"https://api.github.com/users/auny/received_events",
"type": "User"
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这包含有关用户的大量信息,但不包含重要信息之一,即用户的电子邮件地址.作为admin我应该能够获得所有用户的电子邮件地址.
其他用户API仅返回我自己的电子邮件地址,即auth-token请求中使用的帐户的电子邮件地址.API用法:
GET /user/emails
Run Code Online (Sandbox Code Playgroud)
怎么能实现这一目标?周围有路吗?
如前所述,Python 2.7将于2020年1月1日到期,
https://legacy.python.org/dev/peps/pep-0373/
pip在那之后,current是否会继续为python 2.7工作?它已经显示了弃用python 2.7的消息。pip install abc==1.2.3在那之后我们可以运行
吗?
我们确实了解到停产后,将不再为2.7进行新的修复/支持,因此这里不再关注。
问题源于即使在EOL之后也希望继续在python 2.7上运行的愿望。
我正在尝试使用该daemon模块守护进程.代码看起来像这样
import sys
import time
import daemon
import lockfile
def do_things():
while True:
print "hello"
time.sleep(3)
def main()
context = daemon.DaemonContext(stdout=sys.stdout,
pidfile=lockfile.FileLock('test.pid'))
with context:
do_things()
Run Code Online (Sandbox Code Playgroud)
现在,您将看到我正在创建一个锁定PID文件.现在我运行这个程序,运行正常.现在,为了测试PID /守护进程功能,我使用了另一个程序实例
python test.py
Run Code Online (Sandbox Code Playgroud)
现在这次它不应该运行,因为先前的实例已经在运行.事实证明第二个实例开始并进入一个循环(这个不是while我的测试函数中的循环).strace在第二个实例上运行会持续提供以下输出
stat("/some-path-here/Talha@Fedora14-4e1a9720.21520", {st_mode=S_IFREG|0666,
st_size=0, ...}) = 0
select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
link("/some-path-here/Talha@Fedora14- 4e1a9720.21520",
"/somepath/test.pid.lock") = -1 EEXIST (File exists)
Run Code Online (Sandbox Code Playgroud)
并且这个痕迹永远出现,直到该过程被强制杀死.锁文件功能确实检测到现有锁文件的存在,但问题是程序没有退出.此外,我希望显示pid文件已存在此错误.
如何才能做到这一点?
GitHub的API提供了活动事件的特征users,orgs和repos.API支持分页最多10页,总共300 页,每页events30 events页.使用ETAG标头实现速率限制.我正在尝试轮询此API以获取最新活动.然而,由于Github所提供的设计,该方案非常低效.可以说,我就请求page-1通过
https://api.github.com/users/me/events/orgs/my-org?page=1
Run Code Online (Sandbox Code Playgroud)
我将获得ETAG此页面的条目.现在我移动到下一个page-2并做
https://api.github.com/users/me/events/orgs/my-org?page=2
Run Code Online (Sandbox Code Playgroud)
并将获得ETAG第2页.同样,我可以从所有10个支持的页面中提取事件.
现在让我们说我的orgs Github帐户上执行了一些活动.让我们假设只发生了一个新事件.在这种情况下,当我使用它poll的API 将返回已更改的页面,其中包含新的.同样在其前面也将发送改变页.然而,这种变化是之前最后一次事件并且现在已经移至顶部的事件.所有页面都会发生这种"转移到下一个".没有办法找出发生的新事件的数量.唯一的解决方案是继续轮询以获取最新信息.然而,这种方法有一个严重的缺陷解释如下:page-1ETAGeventpollingpage-2ETAGpage-2page-1page-2page-1events
当events我的poll轮次之间的新数量大于30(一页上的最大项目)时,情况会变得更糟.在这种情况下,最新的30个事件之前的事件将page-2直接滑到.如果我只是poll在page-1我身上会失去这些滑倒的事件page-2.我想到的唯一解决方案是保留整个事件的缓存,然后扫描所有页面.然而,这是一种非常有效且不可取的方式,并且杀死事件通知API的目的.
我希望有些github-dev可以回答这个问题
Mongodb更新提供了$push附加到数组的修饰符.我的问题是我希望这发生在一个字典上,例如
如果我的记录最初看起来像这样:
{"collaborations":{'id1':{'role':'dev','scope':'dev'}}}
Run Code Online (Sandbox Code Playgroud)
我想在"协作"字段dict中添加另一个项目(下面的"id2"),看起来像这样:
{"collaborations":{'id1':{'role':'dev','scope':'dev'},'id2':{'role':'qa','scope':'qa'}}}
Run Code Online (Sandbox Code Playgroud)
我正在尝试$push:
my_record.update({match_criteria},{$push,{"collaborations":{'id2':{'role':'qa','scope':'qa'}}}})
Run Code Online (Sandbox Code Playgroud)
还有$addToSet:
my_record.update({match_criteria},{$,{"collaborations":{'id2':{'role':'qa','scope':'qa'}}}})
Run Code Online (Sandbox Code Playgroud)
使用这两个,mongodb抛出错误"无法应用$addToSet($push)修饰符到非数组".
如何为dict类型做到这一点?有任何想法吗?
python ×4
api ×2
github ×2
github-api ×2
daemon ×1
datetime ×1
lockfile ×1
mongodb ×1
pid ×1
pip ×1
polling ×1
python-2.7 ×1
python-3.x ×1
rfc3339 ×1
timestamp ×1