我正在尝试使用Objective-C将.csv文件加载到Xcode,然后我想创建两个不同的数组.第一个数组应该具有前2列的值,第二个数组应该具有第三列的值.
我知道我所寻找的与这个问题非常相似,但我在Objective-C中完全是新手,我有点困惑.
到目前为止,我尝试编写以下代码:
NSString* fileContents = [NSString stringWithContentsOfURL:@"2014-07-16_15_41_20.csv"];
NSArray* rows = [fileContents componentsSeparatedByString:@"\n"];
for (int i = 0; i < rows.count; i ++){
NSString* row = [rows objectAtIndex:i];
NSArray* columns = [row componentsSeparatedByString:@","];
}
Run Code Online (Sandbox Code Playgroud)
那么,这段代码到现在为止是否正确?另外,我怎样才能按照上面描述的方式将列分成2个不同的数组?
我有一个带有多个链接的页面,可以将用户重定向到不同的页面.我认为使用表单会更好,所以我定义了一个Form具有多个的WTForms SubmitFields.如何确定单击了哪个按钮并根据该按钮进行重定向?
class MainForm(Form):
user_stats = SubmitField('User Stats')
room_stats = SubmitField('Room Stats')
@main.route('/')
@login_required
def index():
form = MainForm()
return render_template('index.html', form=form)
Run Code Online (Sandbox Code Playgroud)
<form action="#" method="post">
{{ wtf.quick_form(form) }}
</form>
Run Code Online (Sandbox Code Playgroud) 我有一个 SQLite 数据库来管理用户登录,以及一个现有的 MySQL 数据库。我将 MySQL 数据库添加到 Flask-SQLAlchemySQLALCHEMY_BINDS配置中。当我尝试反映表格时,出现以下错误:
RuntimeError: application not registered on db instance and no application bound to current context
Run Code Online (Sandbox Code Playgroud)
如何正确反映表格?
__init__.py:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
db.init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
return app
Run Code Online (Sandbox Code Playgroud)
manage.py:
from myapp import create_app
from flask.ext.migrate import Migrate, MigrateCommand
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)
migrate = …Run Code Online (Sandbox Code Playgroud) 有示例如何创建像这样的可写嵌套序列化程序,然后如何序列化通用外键(此处)。
但是我找不到同时进行这两项操作的方法,即如何为通用外键字段创建嵌套的可写序列化程序。
在我的模型中,有一个Meeting模型,GenericForeignKey其可以是DailyMeeting或可以是WeeklyMeeting:
class Meeting(models.Model):
# More fields above
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
recurring_meeting = GenericForeignKey('content_type', 'object_id')
class DailyMeeting(models.Model):
meeting = GenericRelation(Meeting)
# more fields
class WeeklyMeeting(models.Model):
meeting = GenericRelation(Meeting)
# more fields
Run Code Online (Sandbox Code Playgroud)
然后,在我的中创建了一个自定义字段serializers.py:
class RecurringMeetingRelatedField(serializers.RelatedField):
def to_representation(self, value):
if isinstance(value, DailyMeeting):
serializer = DailyMeetingSerializer(value)
elif isinstance(value, WeeklyMeeting):
serializer = WeeklyMeetingSerializer(value)
else:
raise Exception('Unexpected type of tagged object')
return serializer.data
class MeetingSerializer(serializers.ModelSerializer):
recurring_meeting …Run Code Online (Sandbox Code Playgroud) 我创建了一个函数来获取一些数据并将它们写入CSV并将输出存储在缓冲区中.
type OptIn struct {
Email string `json:"email"`
LastUpdate string `json:"opt_in_last_update"`
}
func writeCSV(data []OptIn) ([]byte, error) {
var buf bytes.Buffer
writer := csv.NewWriter(&buf)
defer writer.Flush()
for _, obj := range data {
var record []string
record = append(record, obj.Email)
record = append(record, obj.LastUpdate)
err := writer.Write(record)
if err != nil {
panic(err.Error())
}
}
return buf.Bytes(), nil
}
Run Code Online (Sandbox Code Playgroud)
问题是buf.Bytes()始终为空,即使输入不为空且没有抛出错误.