我有一些非常大的CSV文件,我正在使用Postgres9.4。我正在使用Postgres的COPY命令将它们高效地导入到我的数据库中。这很管用:
cursor = conn.cursor()
copy_str = "COPY mytable(presentation_code,quantity,"
copy_str += "processing_date,price_per_unit) FROM STDIN "
copy_str += "WITH DELIMITER AS ','"
file_obj = open(filename)
cursor.copy_expert(copy_str, file_obj)
try:
conn.commit()
except Exception as err:
print 'EXCEPTION:', err
问题是,在数据文件适合复制之前,我必须对它们运行一些转换步骤。这些包括重新排序字段、将字符串转换为浮动、转换日期以便它们适合于Postgres,以及计算一些值(尽管我可以跳过最后一步):
for row in reader:
presentation_code = row[0].strip()
quantity = int(row[1])
period = row[9]
processing_date = period[:4] + '-' + period[4:] + '-01'
if row[4]:
price_per_unit = actual_cost / float(row[4])
else:
price_per_unit = 0
output = [presentation_code, quantity, processing_date, price_per_unit]
writer.writerow(output)
是否有任何Postgres工具可以让我在一个命令中完成这两个步骤(转换,然后复制)?还是这只是必要的一步?
您必须将转换编写为一个程序,将每一行从标准输入转换为标准输出,然后将其用作copy
命令本身的筛选器。详见copy的手册页(查看“程序”部分):http://www.costgresql.org/docs/9.4/statig/sql-copy.html。请注意,该程序将以“postgres”用户的身份运行(如果您想从客户端应用程序运行它,可以使用psql的\copy命令,http://www.postgresql.org/docs/9.4/statig/app-psql.html)。
步骤一:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 备注:登录后可在“开发者中心”查看对应的接口权限。 步骤二:引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js 如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://r
本文向大家介绍Python对象转换为json的方法步骤,包括了Python对象转换为json的方法步骤的使用技巧和注意事项,需要的朋友参考一下 Python中内置了json库,用起来超级方便,json现在以成为开发的必备。 python对象到json字符串的转换规则: Python JSON dict object list, tuple array str, unicode string int
在使用Jenkins管道的过程中,我将一些使用FreeStyle类型项目的旧构建转换为使用管道。旧的自由式建筑效果很好。 我的构建通常在容器环境中完成(通过SSH为该构建而展开),并以用于QA的SonarQube分析结束。 sonarqube步骤(使用Jenkins sonarqube插件)自动将带有正确参数的sonarqube扫描器注入到容器中,以连接到sonarqube服务器,如本例中Jenk
我想在每个步骤之前和之后执行一些操作(而不是场景)。用cucumber怎么做? 就像jUnit中的后和前。 **我正在使用java。
我试图将类型转换为布尔值。所以我就这么做了: 但是不是布尔值,它只包含值。然而,当我尝试这个: 返回一个布尔值,该值为false。 我是否遗漏了一些关于“as”演员的内容? 哪一个是正确的转换为布尔值?
问题内容: 这个问题已经在这里有了答案 : T-SQL转换与转换 (7个答案) 7年前关闭。 选择什么:或用于日期时间(Microsoft SQL Server)? 我看过MSDN规范。乍一看,似乎没有什么区别,除了语法: CAST的语法: CONVERT的语法: 而且 CAST 是ANSI标准,这使其在不同的数据库平台上都更具可移植性。 问题答案: 有一个可选参数,我建议用代替。它有助于避免混乱