使用 BeautifulSoup 从 XML 中解析数据并写入 CSV 时是否有大小限制?[关闭]

Is there a size limit when using BeautifulSoup to parse out data from XML and write to a CSV? [closed]

提问人:drossman 提问时间:11/14/2023 更新时间:11/14/2023 访问量:40

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

8天前关闭。

我正在尝试编写一个 python 脚本来获取 API 拉取的数据结果并将其写入 csv 文件。

该脚本在达到一定大小之前可以完美运行,因为为我提取的数据包含了更高级别的细节。我已经确认我在使用 BeautifulSoup 之前获得了完整的数据集,但是一旦它进入 BeautifulSoup 脚本,它就会删除大部分数据。

这是我在脚本中遇到问题的部分:

xml_data = requests.post('https://api.adaptiveinsights.com/api/v36', data=xml, headers=headers)
xml_data = xml_data.content

soup = BeautifulSoup(xml_data, 'xml')
csv_data = soup.find('output').text.strip()
csv_data = csv_data.replace('[', '').replace(']', '')


reader = csv.reader(io.StringIO(csv_data))
header = next(reader)
rows = [row for row in reader if len(row) == len(header)]

df = pd.DataFrame(rows, columns=header)
df.to_csv('output.csv', index=False)

当我在第 2 行之后进行打印时,我总是拥有完整的数据集。但是,当它达到一定尺寸并且我在第 6 行之后进行打印时,情况并非如此。有什么想法吗?努力寻找有关我做错了什么的任何信息。

python csv beautifulsoup

评论

2赞 tripleee 11/14/2023
这似乎是蛮力。如果无法访问实际的 XML 数据(一小部分样本),就很难看出这里到底发生了什么。如果将整个 XML 结果加载到内存中是瓶颈,也许只需将其写入磁盘文件,然后尝试使用流式 XML 解析器来逐段处理它。
0赞 Zach Young 11/15/2023
👋 嗨,是的,就像@tripleee说的,我们需要更多关于你正在处理的东西的大小的信息。如果只是将 XML 保存到磁盘,文件有多大?此外,请包含一个 XML 示例,其中包含所有深度,但可能只有一个或两个包含节点的实例。谢谢!output
0赞 furas 11/15/2023
也许首先用它来检查你得到了什么.如果文件有很多,那么你应该使用并使用 -loop' 来处理每个print()find('output')outputfind_all('output')foroutput

答: 暂无答案