问题标签 [petl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 lambda 中使用 Python petl 和 boto3 库写入 S3 存储桶?
我对python很陌生。我们正在做一个小项目,我们只是在查询一个表并希望将其作为 json 文件写入 S3 存储桶。
我已经让这些部分分开工作,即查询数据库并将其写入带有 petl 的 json 文件。
然后我用 boto 单独将此文件写入 s3 存储桶:
工作正常。它让他们在我卡住的 lambda 环境中一起工作。我最初认为我不能将本地文件用作临时文件,但后来了解到 lambda 应该有一些本地文件空间和写入能力。但是当我用中间的“data.json”文件大致尝试上面的代码时,我得到了这个错误:
[Errno 30] Read-only file system: 'data.json'
我还尝试了以下方法:
但我只是收到一条错误消息“没有这样的文件或目录”。
我一定遗漏了一些基本的东西,但问题似乎是,我需要 etl 将表格写成 json 格式的字符串。然后我想做 s3.put_object 或 s3.Object().put() body=jsonString
。但我不知道该怎么做。
我一直在浏览 petl docs并尝试了一些不同的东西,但没有任何效果。
也曾短暂尝试让 petl 写入某种 IOBytes 数组,但不记得是如何失败的。此处记录了 petl 的“源”表。它们基本上是某种可迭代的,包括作为第一行的标题行,然后是数据行。
python - 想要从 csv 文件创建键值对列表但无法
我想用 /getService 路由的输出创建一个键值对列表。
我能够从 csv 文件 vet_service_locations 中过滤我想要的数据(郊区和服务),但希望将其作为键值对。关键是郊区,服务和价值将是相关的输出。
我是初学者,尝试了不同的方法,但似乎没有任何效果。
Vet_service_location.csv 数据图像在此链接中
我得到的输出
我想要的输出
所以,有点像表格,与 vet_service_locations.csv 的结构相同。
python - Python 或 PETL 解析 XML
我一直在玩 PETL,看看是否可以提取多个 xml 文件并将它们合并为一个。
我无法控制 XML 文件的结构,这是我看到的变化,这给我带来了麻烦。
XML 文件 1 示例:
XML 文件 2 示例:
我的 python 代码只是扫描子文件夹 xmlfiles,然后尝试使用 PETL 从那里解析。根据文档的结构,到目前为止,我正在加载三个表:
1 保存信息名称和日期 2 保存描述并键入 3 收集详细信息
我将这三个表连接起来,因为我希望每一行的 Info 和 App 数据都包含每个细节。这一直有效,直到我得到一个包含多个 DetailOne 和 DetailTwo 元素的 XML 文件。
我得到的结果是:
结果:
结果:
显示 DetailOne 为 ('1','3') 和 DetailTwo 为 ('2', '4') 的第二个文件不是我想要的。
我想要的是:
我相信 XPath 可能是要走的路,但经过研究:
https://petl.readthedocs.io/en/stable/io.html#xml-files - 没有深入了解 lxml 和 petl
这里有一些简单的阅读: https ://www.w3schools.com/xml/xpath_syntax.asp
更多阅读: https ://lxml.de/tutorial.html
对此的任何帮助表示赞赏!
python-3.x - 警告:numpy 解析要求时出错:[Errno 2] 没有这样的文件或目录:
我正在努力安装图书馆。不过,我之前没有收到此错误。
我收到警告:解析 numpy 的要求时出错:[Errno 2] 没有这样的文件或目录:无论我使用 Jupyter 笔记本还是终端,都会发生此错误。
输出和警告
`要求已经满足:./opt/anaconda3/lib/python3.7/site-packages (1.7.4) 中的 petl
警告: numpy 解析要求时出错:[Errno 2] 没有这样的文件或目录:'/Users/jeffreyoruru/opt/anaconda3/lib/python3.7/site-packages/numpy-1.19.5.dist-info/METADATA`
请让我知道该怎么做或检查。
python - 如何将文本数据从响应对象加载到数据框中
我正在尝试将 curl 请求转换为 get-request 以提取一些工作数据并将其传输到具有参数化文件名的本地文件夹。一个问题是数据只是文本格式,即使尝试了多种方法,也不会转换为 JSON。根据响应,数据类型为“text/tsv;charset=utf-8”。
下一个问题是我无法将数据加载到数据框中,部分原因是我是 Python 新手,不了解这样做的各种方法,部分原因是格式化使找到适用的解决方案变得更加困难。但是,我至少能够使用 splitlines() 方法将文本分成列表。但不幸的是,我仍然无法将列表加载到数据框中。截至上次运行,错误消息是:“错误:无法连接类型为 '<class '_csv.reader'>' 的对象;只有 Series 和 DataFrame objs 有效。”
python - 如何使带有大写标题的 Petl 附加到 PostgreSQL 表小写标题
我在 Python 中有这个 petl 表,我想连接到本地 PostgreSQL 数据库。但是一些 petl 表头是大写的。例如,ID 不是 id。
我意识到当我尝试将表附加到 PostgreSQL 时,无法识别标题。
错误代码:column "UPPERCASE_HEADER" of relation "sql_table" does not exist
。
在成功将表附加到 SQL 之前,我必须将 petl 表头更改为小写。
但是如果我想将标题保留为大写,有没有办法仍然附加到 PostgreSQL 表?因为 PostgreSQL 表头总是小写的。
python-3.x - PETL - 按降序排序
我在对以下代码进行排序时遇到问题:
我首先用 etl 导入了数据框
我检查了“数量”列是否为数字(原始数据存在无数错误)
我按最大数量对“数量”列进行了排序(我尝试使用“最大”但它不起作用 - 不知道为什么)
我应该按递减顺序排序,我尝试了一堆不同的组合,但没有运气。
我想知道为解决这个问题而选择的步骤是否正确,或者我在语法中遗漏了一些东西......非常感谢任何帮助,谢谢!