我尝试使用 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
我已经安装了 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)
我尝试过的解决方案:
pip install tabula-py如果我忽略了什么,请告诉我。
我有一个从 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 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().