我在Python 3中有以下代码,用于打印csv文件中的每一行.
import csv
with open('my_file.csv', 'r', newline='') as csvfile:
lines = csv.reader(csvfile, delimiter = ',', quotechar = '|')
for line in lines:
print(' '.join(line))
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它给了我这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 7386: invalid start byte
Run Code Online (Sandbox Code Playgroud)
我查看了csv文件,事实证明,如果我拿出一个ñ(顶部有一个波浪号的小n),每行打印都很好.
我的问题是,我已经查看了一系列针对类似问题的不同解决方案,但我仍然不知道如何解决这个问题,解码/编码等等.简单地取出数据中的ñ字符不是一个选项.
我知道这个问题以前曾被问过,但是我还没有找到可以解决我情况的答案。
我正在看Django 教程,并且已经按照教程中的说明逐个设置了第一个URL,但是当我转到http:// http:// localhost:8000 / polls /时,它给我这个错误:
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^polls/ ^% [name='index']
^admin/
The current URL, polls/, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)
我正在使用Django 1.10.5和Python 2.7。
这是我在相关网址和查看文件中的代码:
在mysite / polls / views.py中:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Run Code Online (Sandbox Code Playgroud)
在mysite / polls / urls.py中:
from django.conf.urls import …Run Code Online (Sandbox Code Playgroud) 我正在尝试在SQLite中创建一个数据库,该数据库有两个表,一个用于机场列表,另一个表用于这些机场对之间的行程列表.我把它建立为一种自我参照,多对多的关系:
class Trips(db.Model):
__tablename__ = 'trips'
id = db.Column(db.Integer, primary_key=True)
airport_from = db.Column(db.Integer, db.ForeignKey('airport.id'))
airport_to = db.Column(db.Integer, db.ForeignKey('airport.id'))
price = db.Column(db.Float)
date = db.Column(db.Date)
class Airport(db.Model):
__tablename__ = 'airport'
id = db.Column(db.Integer, primary_key=True)
iata = db.Column(db.String(8), index=True, unique=True)
name = db.Column(db.String(120), index=True, unique=True)
city = db.Column(db.String(120))
region = db.Column(db.String(120))
country = db.Column(db.String(120))
flying_from = db.relationship('Trips', backref='end', primaryjoin=(id==Trips.airport_to))
flying_to = db.relationship('Trips', backref='start', primaryjoin=(id==Trips.airport_from))
def __repr__(self):
return '<Airport: {0}; IATA: {1}>'.format(self.name, self.iata)
Run Code Online (Sandbox Code Playgroud)
当我打开我的Python shell并导入这些模型时,我让SQLAlchemy会话添加Airport对象并提交就好了,但当我做类似的事情时:
>>> t = models.Trips(airport_from=3, airport_to=4, price=230.0)
>>> db.session.add(t) …Run Code Online (Sandbox Code Playgroud) 我想使用 SQLAlchemy 设置 general_log 和 general_log_file 变量,有没有办法做到这一点?我一直在谷歌搜索,找不到关于这个主题的任何内容。
编辑:我正在测试的方法调用在另一个类中定义的这个常量,所以我想测试该方法是否独立于其他类定义常量的方式工作。嘲笑它是我能想到的第一件事,但我对如何以干净、安全的方式测试它的其他想法持开放态度
(类、方法和变量名称已泛化)
我正在尝试弄清楚如何编写测试。我的一个方法从另一个类获取常量,如下所示:
OtherClass.CONSTANT
Run Code Online (Sandbox Code Playgroud)
这个常数定义为:
public static final List<Long> CONSTANT =
ImmutableList.of(1, 2);
Run Code Online (Sandbox Code Playgroud)
在测试这个方法时,我想模拟这个调用。我试过了
when(OtherClass.CONSTANT).thenReturn(ImmutableList.of(1, 2));
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误:
RegularImmutableList cannot be returned by otherFunction()
otherFunction() should return String
Run Code Online (Sandbox Code Playgroud)
otherFunction() 是代码库中的其他函数,它似乎与我一直在处理的任何内容无关。
我也尝试过
doReturn(ImmutableList.of(1, 2)).when(OtherClass.CONSTANT);
Run Code Online (Sandbox Code Playgroud)
但是,正如您可能猜到的那样,它给了我这个错误:
Argument passed to when() is not a mock!
Example of correct stubbing:
doThrow(new RuntimeException()).when(mock).someMethod();
Run Code Online (Sandbox Code Playgroud)
我非常不知道应该如何嘲笑这个常量。
我环顾四周,找不到任何具体解决我想知道的答案:
在Mac终端中,我可以通过ssh访问远程服务器:
ssh [my_username]@[server.host.com]
Run Code Online (Sandbox Code Playgroud)
它提示我输入密码,输入密码后,它会将我带到远程服务器.
登录远程服务器后,我可以访问MySQL:
mysql -u [other_username] -h [mysql.host.com] -p
Run Code Online (Sandbox Code Playgroud)
它提示我输入另一个密码,输入密码后,我在MySQL控制台,可以显示位于那里的数据库等.我们可以调用我对[数据库]感兴趣的数据库.
我的问题是,如何将我的本地主机上的Django连接到[数据库],以便我的应用程序使用[数据库]?
我已将 Postgres 数据库添加到我的 Heroku 应用程序中,并尝试将我的 Django 应用程序连接到它。但是,我的应用程序始终连接到本地 Postgres 数据库。
设置.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'app_db',
'USER': 'admin',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
Run Code Online (Sandbox Code Playgroud)
我已将 .env 文件中的“DATABASE_URL”设置为 Heroku 应用程序上 Postgres 数据库的 url,但它似乎没有更新数据库。如何强制我的应用程序连接到 Heroku 数据库而不是本地数据库?