首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >csvkit:对于csv to Table,在以下情况下如何保留引用的字符串

csvkit:对于csv to Table,在以下情况下如何保留引用的字符串
EN

Stack Overflow用户
提问于 2016-03-03 15:04:03
回答 1查看 238关注 0票数 2

在使用csvkit时,我遇到了将字符数据转换为数字数据的问题。对于下面的示例,我的第一列被转换为'int‘

数据:(test.csv)

代码语言:javascript
复制
"BG_ID_10","DisSens_2010","PrivateNeglect_2010"
"250250001001",0.506632168908,0.363523524561
"250250001004",0.346632168908,0.352456136352

代码片段:

代码语言:javascript
复制
from csvkit import sql as csvkit_sql
from csvkit import table
from csv import QUOTE_NONNUMERIC

fh = open('test.csv', 'rb')

csv_table = table.Table.from_csv(f=fh,\
                        name='tname',\
                        delimiter=',',\
                        quotechar='"',\
                        snifflimit=0,\
                        )

for col in csv_table:
    print col.name, col.type

输出:

代码语言:javascript
复制
BG_ID_10 <type 'int'>
DisSens_2010 <type 'float'>
PrivateNeglect_2010 <type 'float'>

我有一个工作的黑客,但感谢任何帮助,更好的参数为"from_csv“或替代建议。(请注意,在此步骤之后,将使用csvkit命令生成Postgres create table语句。)

Working Hack:

代码语言:javascript
复制
char_col = csv_table[0] # get first column
char_col.type = unicode # change type
for idx, val in enumerate(char_col):  # force to unicode
    char_col[idx] = u'%s' % val
EN

回答 1

Stack Overflow用户

发布于 2016-03-03 15:11:14

您可以在from_csv调用中添加infer_types=False。所有类型都将成为unicode

代码语言:javascript
复制
BG_ID_10 <type 'unicode'>
DisSens_2010 <type 'unicode'>
PrivateNeglect_2010 <type 'unicode'>

但是在没有building Columns yourself的情况下,目前还无法指定类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35765293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档