我在csv文件中有数据,日期存储为标准英国格式的字符串 - %d/%m/%Y
- 意味着它们看起来像:
12/01/2012
30/01/2012
Run Code Online (Sandbox Code Playgroud)
上述示例代表2012年1月12日和2012年1月30日.
当我使用pandas版本0.11.0导入此数据时,我应用了以下转换:
import pandas as pd
...
cpts.Date = cpts.Date.apply(pd.to_datetime)
Run Code Online (Sandbox Code Playgroud)
但它不一致地转换日期.要使用我现有的示例,12/01/2012将转换为代表2012年12月1日但2012年1月30日转换为2012年1月30日的日期时间对象,这正是我想要的.
看了这个问题之后我试了一下:
cpts.Date = cpts.Date.apply(pd.to_datetime, format='%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud)
但结果完全一样.该源代码表明我正在做正确的事情,所以我无所适从.有谁知道我做错了什么?
我正在尝试在公司代理后面使用堆栈.发出stack new
命令返回:
InvalidProxyEnvironmentVariable "http_proxy" "http://username:password@host:port/"
Run Code Online (Sandbox Code Playgroud)
我有http_proxy
,https_proxy
并ftp_proxy
在我的定义中.bashrc
,以及它们在所有大写中的等价物(例如HTTP_PROXY
).删除或更改这些将破坏别处的东西.
堆栈仓库似乎还没有记录代理行为,这是可以理解的,因为它最近才发布.有没有人知道目前是否可以在代理后面使用堆栈?如果是这样,怎么样?
我正在尝试用python脚本中的CSV文件填充表格.
随后的SQL语句运行时没有错误:
COPY registro
FROM '/home/pablo/Escritorio/puntos/20140227.csv'
DELIMITER ','
CSV header;
Run Code Online (Sandbox Code Playgroud)
CSV具有标题,并使用header
参数,导入时没有错误.
当我从我的python脚本执行它时,问题出现了.我发现不尝试导入标题的唯一方法是使用copy_expert()
方法.我没有收到任何错误消息,但是在我运行下面的Python脚本后,表仍然是空的.
任何可能的线索?或者也许用其他任何方式从带有标题的CSV复制表格?
谢谢.
#/usr/bin/env python
# -*- coding: utf-8 -*-
import psycopg2
import os
import glob
DSN = "dbname=gps user=postgres host=localhost"
con = psycopg2.connect(DSN)
cur = con.cursor()
my_file = open('/home/pablo/Escritorio/puntos/20140227.csv')
#This is only a test file, not all the directory
sql = "COPY registro FROM stdin DELIMITER \',\' CSV header;"
cur.copy_expert(sql, my_file)
cur.close()
con.close()
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu服务器上运行django 1.4和grappelli 2.4.3,我在生产时通过Windows网络系统查看.当我使用RDP在Ubuntu机器上查看它时,在开发服务器上一切正常.
settings.py的相关部分是:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), '../03_static_files/collected/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__), '../03_static_files/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/admin/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/filebrowser/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/grappelli/'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# apps I added but didn't create
'south',
'grappelli',
'filebrowser',
'tinymce',
'haystack',
'gunicorn',
'debug_toolbar', …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Django 1.7 和 Python 3.4 编写单元测试。当file_data
元素被注释掉时,下面的表单验证正常。随着file_data
包括它不验证和测试失败。
from django.core.files.uploadedfile import SimpleUploadedFile
...
data = {
'phone_number': '123456',
'job': Job.objects.latest('id').pk,
}
file_data = {
'portrait': SimpleUploadedFile(
content=b'',
content_type='image/jpeg',
name='test.jpg',
)
}
form = PersonForm(data, file_data)
self.assertTrue(form.is_valid())
Run Code Online (Sandbox Code Playgroud)
类似的代码适用FileField
于我网站其他地方的上传测试。在 shell 中运行代码我得到以下内容form.errors
:'Upload a valid image. The file you uploaded was either not an image or a corrupted image.'
因此,我认为问题出在content
或content_type
字段中。我试过在这个答案中使用 image-as-a-string无济于事。[编辑:图像作为字符串的方法实际上是答案,但我一定是实施得很糟糕。接受的答案已验证有效。]我在SimpleUloadedFile 源代码中找不到任何线索。
该表单在现实中运行良好,但我想确保它包含在未来维护的工作测试中。理想情况下,我想避免必须存在实际test.jpg
文件,因为图像在我的.gitignore …
我有一个模型,该模型将在其整个生命周期内进行更新。我希望每次更新都基于旧对象返回一个新对象,而不是更新原始对象。这是为了向用户提供先前的对象作为参考,同时确保他们不会覆盖它。我尝试使用相同的表单,这个问题建议它可能会实现我想要的,但它没有(它更新了)。然后我尝试重写 save 方法以指向我的 CreateView,如下面的代码所示,但这告诉我它需要一个 CreateView 实例作为其第一个参数。有没有办法获得我想要的行为?
class TriageUpdateView(PermissionRequiredMixin, UpdateView):
model = Triage
form_class = TriageForm
login_url = "/login/"
permission_required = "myapp.add_triage"
def form_valid(self, form):
obj = form.save(commit = False)
obj.completed_by = self.request.user.person
return TriageCreateView.form_valid(self, form)
Run Code Online (Sandbox Code Playgroud) 我正在 Django 1.5 中编写一个管理器。我想返回一个QuerySet
包含具有今天或将来开始日期的对象。根据对上一个问题的回答,我认为我的经理需要使用可调用而不是函数。我写过:
...
return super(UpcomingEventManager, self).get_query_set().filter(date__gte=timezone.now().date)
Run Code Online (Sandbox Code Playgroud)
我把那段代码读成一个可调用的 ( date
),timezone.now()
它的值依赖于一个函数 ( )。但是 Django 会将其视为可调用的还是函数?
我知道我可以通过创建一个对象并等到明天来测试这一点,但我宁愿完全理解这一点。
我正在尝试做的事情 我有一个简单的视图,它将pk作为参数并执行操作.这个工作正常,直到pks大于999.现在他们返回404s.我正在努力解决这个问题.
我尝试过的内容 我的观点如下:
def request_publication(request, pk):
...
article = News.all_news.get(pk=pk) # all_news is a manager including unpublished articles
article.status = article.HIDDEN_STATUS
article.save()
...
Run Code Online (Sandbox Code Playgroud)
网址正则表达式是这样的:
regex=r'^request-publication/(?P<pk>\d+)/',
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
regex=r'^request-publication/(?P<pk>\d{4})/',
Run Code Online (Sandbox Code Playgroud)
这使得它在pks <1000时失败,但仍不适用于pk> 999.
完整的urls.py
是:
# core Django imports
from django.conf.urls import patterns, include, url
# local imports
from .models import News, Category, Attachment
from .views import (
NewsHomeView,
CategoryHomeView,
NewsDetailView,
NewsYearArchiveView,
NewsMonthArchiveView,
NewsDayArchiveView,
NewsListView,
NewsCreateView,
NewsUpdateView,
publish,
request_publication,
)
urlpatterns = patterns('',
url(
regex = r'^$',
view = NewsHomeView.as_view(),
name …
Run Code Online (Sandbox Code Playgroud) 我想将count(*)查询的结果分组到值桶中.我正在dellstore2 postgresql示例数据库上测试它.我的查询返回正确的答案,但对表中的每一行都做了一次(几千个相同的结果).我可以通过添加LIMIT 1
查询的结尾来解决这个问题,但我想了解为什么我会得到重复项,以防它指向我的方法更广泛的问题.查询是:
SELECT
(SELECT count(*)
FROM
orders
WHERE
totalamount > 0 AND totalamount <= 100) AS ">0 <= 100",
(SELECT count(*)
FROM
orders
WHERE
totalamount > 100 AND totalamount <= 200) AS ">100 <= 200"
...
FROM
orders;
Run Code Online (Sandbox Code Playgroud)
编辑Andomar的回答也让我找到了以下方法(简而言之,改编自SQL中的一个例子(O'Reilly)).这让我可以将桶放在一列中,每个桶/答案配对都有一行.我以为我会把它包含在任何有这个用例的人中:
SELECT CASE
WHEN totalamount IS NULL THEN 'Unknown'
WHEN totalamount <= 100 THEN 'Not more than 100'
WHEN totalamount <= 200 THEN 'Not more than 200'
ELSE 'Over 200'
END "Bucket",
COUNT(*) "Number of results"
FROM
orders
GROUP …
Run Code Online (Sandbox Code Playgroud) 我有两个模型,两个模型都有一个默认为当前日期的日期字段,无论是什么。今天,有人指出他们收到其中一个错误,该错误将日期设置为 12 月 19 日,而不是 12 月 23 日(今天撰写本文时)。
我原以为这两个字段的设置相同,所以我检查了两者之间是否存在意外差异,并发现了一个差异。但我很惊讶,因为“工作”的那个在我看来似乎包含一个错误。这些字段设置如下:
# Working field
date_stamp = models.DateField(default=datetime.date.today)
# Broken field
date_statp = models.DateField(default=datetime.date.today())
Run Code Online (Sandbox Code Playgroud)
我一直认为today
需要调用该函数以确保该值不被缓存。事实恰恰相反吗?有人可以解释这两者在模型实例创建时实际上是如何解释的吗?
我正在使用优秀的haskell-vim-now软件包来增强Ubuntu上的gvim.这很好,可以自定义,但我想尝试.vimrc
从头开始构建我自己的,以便更好地使用编辑器的更高级功能.我正在努力复制haskell-vim-now的一个功能,即使在阅读了haskell-vim-now之后.vimrc
.
它用unicode字符替换某些表达式,以更加数学方式显示代码.例如,可以在haskell中定义lambda表达式\
.这将在编辑器中显示为?
.要清楚基础文本仍然是\
,只有编辑器内显示被更改.有谁知道如何实现这种效果?
django ×6
python ×4
haskell ×2
postgresql ×2
sql ×2
callback ×1
csv ×1
date ×1
datetime ×1
django-1.7 ×1
django-tests ×1
forms ×1
function ×1
gunicorn ×1
nginx ×1
pandas ×1
psycopg2 ×1
unicode ×1
validation ×1
vim ×1