我正在编写一个程序,它可以处理很多时区并将它们交叉.我最常处理的两件事是从"now"创建一个datetime对象,然后本地化一个天真的datetime对象.
要在太平洋时区创建一个日期时间对象,我目前正在这样做(python 2.7.2+)
from datetime import datetime
import pytz
la = pytz.timezone("America/Los_Angeles")
now = datetime.now(la)
Run Code Online (Sandbox Code Playgroud)
对于夏令时,这是正确的吗?如果没有,我想我应该这样做:
now2 = la.localize(datetime.now())
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么?任何人都可以告诉我第一个错误的情况,秒是对的?
至于我的秒问题,假设我在加利福尼亚州洛杉矶上午8:00的某个用户输入中有一个天真的日期和时间.是这样制作日期时间的正确方法:
la.localize(datetime(2012, 9, 1, 8, 0))
Run Code Online (Sandbox Code Playgroud)
如果没有,我应该如何构建这些日期时间?
我正在尝试调试我的django应用程序,但是这很困难,因为我不知道我的打印语句在哪里发送它们的输出。我在django和nginx中使用flup和fastcgi,可以看到python错误并通过nginx访问日志,但是我不知道我的打印语句在哪里。
这是我的nginx.conf文件中的相关内容:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/demo.access.log;
error_log /var/log/nginx/demo.error.log;
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9001;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下命令运行fastcgi:
python manage.py runfcgi host=127.0.0.1 port=9001
Run Code Online (Sandbox Code Playgroud)
我基本上遵循了本教程https://code.djangoproject.com/wiki/DjangoAndNginx,我的操作系统是ubuntu!
谢谢您的帮助!
我有一个多线程的django应用程序,它在单独的线程中创建一些对象,以便更快地返回.创建的对象仅用于跟踪用户已完成的操作,并且不以任何方式对时间敏感.
视图函数看起来像这样:
def foo(request):
#... do important computation...
bar(x, y, z)
return HttpResponse()
Run Code Online (Sandbox Code Playgroud)
一切都运行正常,但当我改变它看起来像这样并使用线程:
def foo(request):
#... do important computation...
thread = Thread(target=bar, args=(x, y, z))
thread.start()
if testing_mode:
thread.join()
return HttpResponse()
Run Code Online (Sandbox Code Playgroud)
第二个版本失败了.这都是使用TransactionTestCase和mySQL 完成的.
有任何想法吗?
我正在使用django作为webapp的后端.我通过django发送json数据,它运行良好.然而,最近我开始处理非ascii数据,并注意到非ascii字符的一些不寻常的行为.在我的webapp中,我的代码如下所示:
def make_json():
json_string = u{"start_location" : "5802 W 71st St Indianapolis? Indiana? 46278 United States", "lat" : 39.8819269, "lng" : -86.2631006, "timezone" : "America/Indiana/Indianapolis"}
return HttpResponse(json_string, content_type='application/json')
Run Code Online (Sandbox Code Playgroud)
Django对它没有任何问题,但是当我在浏览器(chrome)中查看它时,我看到的是:
{"start_location" : "5802 W 71st St Indianapolis‎ Indiana‎ 46278 United States", "lat" : 39.8819269, "lng" : -86.2631006, "timezone" : "America/Indiana/Indianapolis"}
Run Code Online (Sandbox Code Playgroud)
我在这里做错了吗?我已经尝试将unicode对象编码为utf-8,然后将其提供给HttpResponse(),但它不会改变任何东西.
感谢您的帮助!
我在使用python中的字符串时遇到了一些问题,而==我认为它们应该是这样,而且我认为它与编码方式有关.基本上,我解析了存储在zip存档中的一些以逗号分隔的值(特别是GTFS提要,对于那些好奇的人).
我在python中使用ZipFile模块打开zip存档的某些文件,然后将其中的文本与一些已知值进行比较.这是一个示例文件:
agency_id,agency_name,agency_url,agency_phone,agency_timezone,agency_lang
ARLC,Arlington Transit,http://www.arlingtontransit.com,703-228-7433,America/New_York,en
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码是尝试在文本的第一行中识别字符串"agency_id"的位置,以便我可以在任何后续行中使用相应的值.这是代码的片段:
zipped_feed = ZipFile(feed_name, "r")
agency_file = zipped_feed.open("agency.txt", "r")
line_num = 0
agencyline = agency_file.readline()
while agencyline:
if line_num == 0:
# this is the header, all we care about is the agency_id
lineparts = agencyline.split(",")
position = -1
counter = 0
for part in lineparts:
part = part.strip()
if part == "agency_id":
position = counter
counter += 1
line_num += 1
agencyline = agency_file.readline()
else:
.....
Run Code Online (Sandbox Code Playgroud)
此代码适用于某些zip存档,但不适用于其他zip存档.我做了一些研究,并尝试打印repr(部分),我得到'\ xef\xbb\xbfagency_id'而不是'agency_id'.有谁知道这里发生了什么以及我如何解决它?感谢您的帮助!