[英]Difference in output file size when writing to .txt and .xlsx formats
我尝试将800个JSON响应保存到.txt文件以及Excel文件中。
对于txt,我正在使用:
for activity_id in activity_ids:
activity_details = requests.get(url, params=activity_id).text
with open('test.txt','a') as f:
f.write(activity_details + '\n')
对于JSON:
def df_to_excel(df, filename):
writer = pandas.ExcelWriter(filename)
df.to_excel(writer, 'Sheet1')
writer.save()
for activity_id in activity_ids:
activity_details = requests.get(url, params=activity_id).json()
df = json_normalize(j)
df_to_excel(df, 'test.xlsx')
为什么输出文件大小有巨大差异:Excel文件为6.5 Mb,txt文件为30 Mb? 如果有的话,我希望Excel文件更大。 有什么办法可以缩小txt输出文件?
Excel文档(.xlsx)是包含xml文件的zip文件。 您看到的大小差异是zip压缩过程的结果。
文本文件以附加模式打开。 如果您没有在代码开始时清除它,它将在每次运行代码时不断积累大量多余的文本。 此外,您正在为文本文件中的每个活动ID编写响应,而您似乎正在excel中覆盖工作表1,因此excel仅存储最后一个活动ID信息。
编辑:是的,正如@Michael所说,excel文件确实存储压缩数据,并且比纯文本文件小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.