【发布时间】:2020-10-06 02:44:11
【问题描述】:
我有一本名为 column_types 的字典,其值如下。
column_types = {'A': 'pa.int32()',
'B': 'pa.string()'
}
我想将字典传递给 pyarrow 读取 csv 函数,如下所示
from pyarrow import csv
table = csv.read_csv(file_name,
convert_options=csv.ConvertOptions(column_types=column_types)
)
但它给出了一个错误,因为字典中的值是一个字符串。 以下语句将毫无问题地工作。
from pyarrow import csv
table = csv.read_csv(file_name, convert_options=csv.ConvertOptions(column_types = {
'A':pa.int32(),
'B':pa.string()
}))
如何将字典值更改为可执行语句并将其传递到 csv.ConvertOptions 中?
【问题讨论】:
-
不要在字符串中传递代码并执行它。而是传递一个函数对象并调用它。
-
stackoverflow.com/questions/701802/… 这个答案可能会有所帮助
-
若要扩展@alaniwi 的评论,请删除
().column_types = {'A': pa.int32}等。 -
@DivyangVashi 这不是他想使用
exec函数的情况。 -
@Axe319 我无法移除大括号。因为 int32 和 string 是 pyarrow 的函数。
标签: python python-3.x string pyarrow