小编Sac*_*chu的帖子

无法通过 django CreateView 和 ModelForm 使用 DateTime 输入

我尝试使用 CreateView 通过 UI 创建模型事件的对象 我的模型是

class Event(models.Model):
    start = models.DateTimeField(_("start"), db_index=True)
    end = models.DateTimeField(_("end"), db_index=True, help_text=_("The end time must be later than the start time."))
    title = models.CharField(_("title"), max_length=255)
    description = models.TextField(_("description"), blank=True)
    rule = models.ForeignKey(Rule)
    calendar = models.ForeignKey(Calendar)
Run Code Online (Sandbox Code Playgroud)

我的模型表单是

class EventForm(forms.ModelForm):
    class Meta:
        model=Event
        fields=['start','end','title','description','rule','calendar',]
Run Code Online (Sandbox Code Playgroud)

我的网址是

url(r'^addEvent/$', CreateEventView.as_view(), name='add-event'),
Run Code Online (Sandbox Code Playgroud)

查看是

class CreateEventView(CreateView):
    form_class=EventForm
    template_name="createEventForm.html"
    success_url='/eventListView/'
Run Code Online (Sandbox Code Playgroud)

我尝试在以下 HTML 模板中自动呈现此内容

{% extends "base.html" %}
{% load i18n %}
{% block body %}
    <form method='POST'>{% csrf_token %}
        {{form.as_p}}
    <button type="submit">Save</button>
    </form> …
Run Code Online (Sandbox Code Playgroud)

django-templates django-forms django-generic-views jquery-widgets bootstrap-datetimepicker

5
推荐指数
0
解决办法
853
查看次数

使用 Tabula 通过 Python 读取 pdf 时出现 Java 错误

我已经安装了 tabula 库,用于使用 python 将 pdf 读取到 pandas 数据框中。但是当我运行代码时

import tabula
df=tabula.read_pdf("sample1.pdf",pages='1')
Run Code Online (Sandbox Code Playgroud)

我得到了例外。

SEVERE: Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
Run Code Online (Sandbox Code Playgroud)

我尝试过的解决方案:

  1. 重新安装 Java JDK 并确保将其添加到路径中(使用 java-version 进行验证)
  2. 从此链接安装了 Java 高级成像工具并重新启动了我的系统
  3. 卸载和安装 tabulapip install tabula-py

如果我忽略了什么,请告诉我。

java pdf dataframe python-3.x tabula

5
推荐指数
0
解决办法
499
查看次数

从 pandas DataFrame 中的日期时间列中提取月份

我有一个从 Excel 读取的 DataFrame,其中包含 DateTime 类型的列之一。

sales_data=pandas.read_excel(r'Sample Sales Data.xlsx')
Run Code Online (Sandbox Code Playgroud)

我能够使用 str.extract/lambda 函数从其他列中提取子字符串。但我无法处理“订单日期”列

该命令sales_data['Order Date']给出以下输出

在此输入图像描述

正如其他StackOverflow问题中所建议的那样,我尝试过

sales_data['Order Date'].apply(lambda x:x.str.slice())
Run Code Online (Sandbox Code Playgroud)

我收到错误: AttributeError: 'datetime.datetime' object has no attribute 'str' 要检查订单日期列的类型,我尝试了

sales_data['Order Date'].apply(lambda x:type(x))
Run Code Online (Sandbox Code Playgroud)

我得到了 datetime.datetime 类型在此输入图像描述 但是当我尝试日期时间操作时

sales_data['Order Date'].apply(lambda x:x.strftime("m"))
Run Code Online (Sandbox Code Playgroud)

我收到错误: AttributeError: 'int' object has no attribute 'strftime' 我收到了类似的命令错误

sales_data['Order Date'].apply(lambda x:x.dt.month)
Run Code Online (Sandbox Code Playgroud)

请建议一种方法,将日期时间对象中的月份提取到另一列中,而无需迭代数据帧。我无法对此列使用 datetime 或 int 函数,因为它同时充当 datetime 和 int 列。

python lambda datetime dataframe pandas

5
推荐指数
1
解决办法
2万
查看次数

复制 csv 文件时字符串到字节转换错误

我在 Python 3.6.4 中编写了以下代码来读取目录中的 .csv 文件“Data.csv”并将内容复制到 NamedTemporaryFile“temp_file”

file_path= "Data.csv"
temp_file=NamedTemporaryFile(delete=False)
with open(file_path,"rb") as csvfile,temp_file:
    fieldnames=["id","Title","Desc","Comments"]
    reader=csv.DictReader(csvfile,fieldnames=fieldnames)
    writer=csv.DictWriter(temp_file,fieldnames=fieldnames)
    for row in reader:
        temp_row={"id":row["id"],"Title":row["Title"],"Desc":row["Desc"],"Comments":row["Comments"],}
        writer.writerow(temp_row)
        print(row)
Run Code Online (Sandbox Code Playgroud)

执行上面的代码在迭代器行中出现错误(对于阅读器中的行):错误说:

_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
Run Code Online (Sandbox Code Playgroud)

我寻找解决方案并找到了这个答案

但这并没有解决我的问题,因为当我将“rb”更改为“rt”时,我开始收到另一个错误

writer.writerow(temp_row)
Run Code Online (Sandbox Code Playgroud)

这个错误说:

TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我认为这个问题只出现在Python 3中,不影响Python 2

我已经尝试过诸如将字符串转换为字节的函数之类的方法encode()以及decode()一些库函数,例如json.dumps().

python csv python-3.x

2
推荐指数
1
解决办法
884
查看次数