python - 如何将 python crypt 对象转换为 csv,以便我可以对内容调用 csv 方法

标签 python oracle csv encryption

我的示例代码如下:我的问题在代码后面

[root@localhost .gnupg]# python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
    >>> import csv

    >>> import gnupg

    >>> import os

    >>> gpg = gnupg.GPG(gnupghome="/home/chefgit/Desktop/.gnupg")

    >>> file = open("/home/chefgit/Desktop/csv/dest/file_100.gpg")

    >>> decrypt = gpg.decrypt_file(file)

好的,这就是我正在尝试做的事情。我得到了这份新工作,他们给了我第一个项目。编写一个使用 python GNU PG 来加密和解密数据的脚本。好的,这是最简单的部分。然后我的老板进来并说我必须解密数据并将其即时加载到数据库中。我们正在处理 protected 健康信息 (PHI),因此他不希望文件在磁盘上未加密,哪怕只有一纳秒。我应该解密文件并将它们即时加载到数据库中。从那里,数据将进入数据湖,然后进入 ODI(Oracle 数据集成器),并通过 ETL 进入我们正在构建的 Oracle 数据仓库。但正如你从代码中看到的,我遇到了一个问题。我需要某种方法来逐行读取数据。但变量“decrypted”(在我的代码中)是一个 crypt 对象。它不允许我应用正常的 readlines 方法。理想情况下,我想要一种使用 csv.readlines() 方法读取数据的方法,以便我可以将其写入 Oracle 数据库中的表中。我已经尝试了一切我能做的,但不知道该怎么做。我是 python 新手。这是我的第一个 python 项目。请帮我。我需要完成这件事才能保住这份工作。我正处于 6 个月的试用期。六个月后,他们将决定是否让我留在船上。

最佳答案

您可以使用Python的StringIO (或 cStringIO 如果可用)将数据转换为类似文件的对象。然后可以将其输入到 CSV 阅读器中进行逐行处理。以下脚本让您了解如何完成此操作:

import csv
import gnupg
import os
import StringIO

gpg = gnupg.GPG(gnupghome="/home/chefgit/Desktop/.gnupg")
file = open("/home/chefgit/Desktop/csv/dest/file_100.gpg")
decrypt = gpg.decrypt_file(file)
csv_input = csv.reader(StringIO.StringIO(decrypt))

for row in csv_input:
    print row

关于python - 如何将 python crypt 对象转换为 csv,以便我可以对内容调用 csv 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874698/

相关文章:

oracle - Oracle 中的隐藏功能

python - 如何将 csv 文件导入到 ms sql 数据库中?

csv - 如何在logstash中将 `include_headers => true`添加到csv编解码器以进行s3输出?

python - 我无法在 FastAPI 中读取上传的 csv 文件

python - 来自日期时间索引组循环的 Pandas 计算列

python - 如何在 Python 中链接多个 re.sub() 命令

oracle - 不要传输 blob

python - 如何组合最接近的非重叠范围?

Python:按值对嵌套字典进行排序

regex - 如何以特定方式替换新行和换行