python - 使用上行链接在 Anvil 中上传 csv 文件
问题描述
我有这样的错误:
TypeError: __init__() takes from 1 to 2 positional arguments but 3 were given at <ipython-input 4-66c1c8f89515>, line 8 called from Form1, line 18
这是我在铁砧中的代码:
class Form1(Form1Template):
def __init__(self, **properties):
# Set Form properties and Data Bindings.
self.init_components(**properties)
def file_loader_1_change(self, file, **event_args):
"""This method is called when a new file is loaded into this FileLoader"""
anvil.server.call('import_csv_data',file)
jupyter notebook 中的这段代码用于将数据上传到 anvil 数据表:
import pandas as pd
import anvil.tables as tables
from anvil.tables import app_tables
import anvil.media
@anvil.server.callable
def import_csv_data(file):
with anvil.media.TempFile(file, "r") as f:
df = pd.read_csv(f)
for d in df.to_dict(orient="records"):
# d is now a dict of {columnname -> value} for this row
# We use Python's **kwargs syntax to pass the whole dict as
# keyword arguments
app_tables.NilaiTukar.add_row(**d)
解决方案
我认为您看到的错误是因为您给出了两个参数,anvil.media.TempFile
而它只是设计为接受一个。我用一个更简单的例子复制了你的错误:
import anvil.media
@anvil.server.callable
def import_csv_data(file):
with anvil.media.TempFile(file, "r") as f:
pass
if __name__ == "__main__":
import_csv_data("fname.txt")
根据文档,您不需要“r”参数。你应该打电话给:
@anvil.server.callable
def import_csv_data(file):
with anvil.media.TempFile(file) as f:
...
那么它应该适合你。
推荐阅读
- c - 使用 scanf 的返回值验证输入不起作用
- reactjs - 片段内的反应组件未加载
- java - 在屏幕 1 的文本字段中保留值,同时使用变量和意图从屏幕 2 按下回
- react-native - React Native 会执行 Tree Shaking 吗?
- ibm-cloud - softlayer 带宽池删除
- dart - 每隔一定时间间隔选择地理位置
- c - C - 检查主要参数
- android - 无法连接到 Android 模拟器 Windows 操作系统上的开发服务器?
- android - 当应用程序处于后台或在 android 中关闭时,FCM 通知未在通知栏中显示可扩展图像
- java - Activity 的 onCreate 方法上的 NullPointerException。必须在 setContentView() 之前动态添加视图