我尝试将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输出文件?
答案 0 :(得分:2)
Excel文档(.xlsx)是包含xml文件的zip文件。您看到的尺寸差异是压缩过程中压缩的结果。
答案 1 :(得分:0)
正在以附加模式打开文本文件。如果您没有在代码开始时清除它,它将在每次运行代码时不断积累大量多余的文本。此外,您正在针对文本文件中的每个活动ID编写响应,而您似乎正在excel中覆盖工作表1,因此excel仅存储最后一个活动ID信息。
编辑:是的,正如@Michael所说,excel文件确实存储压缩数据,并且比纯文本文件小。