为什么JSON文件比具有相同内容的.txt文件小得多?

时间:2018-01-18 03:05:45

标签: json export-to-csv

我正在将JSON文件(从ajax调用)转换为CSV。

当JSON文件发送给我时,它是80kb。

当我将JSON文件的内容保存到.txt文件中时,它变为291kb!

将.txt文件转换为.csv文件后,它是240kb。

我从ajax调用收到的JSON文件如何使用相同内容创建的.txt文件小得多?有没有办法减少最终产品的尺寸?

编辑:

这就是我获取文件大小的方法。

  1. 我找到了AJAX请求,并检查其文件大小。 Link。如您所见,它大约是80kb。
  2. 我复制了请求的来源。 Link
  3. 然后我将源复制并粘贴到空白的.txt文件中。结果是.txt文件大小为291 kb。
  4. 编辑:

    我认为.txt到.csv转换问题不是问题,但这是我的代码:

    import json
    import csv
    import re
    
    with open('jjj.txt') as f:
        f = f.read()
    
    parsed = json.loads(f)
    unix_time = re.compile(r'(\d\d\d\d\d\d\d\d\d\d\d\d\d)')
    
    data = parsed['d']['tables'][0]['rows']
    for i in data:
        for a in range(len(i)):
            if a > 39 and a < 46:
                if i[a] != None:
                    mo = unix_time.search(i[a])
                    i[a] = mo.group(1)
    
    
    file = open('json.csv', 'w', newline='')
    csvwriter = csv.writer(file)
    csvwriter.writerows(data)
    

1 个答案:

答案 0 :(得分:4)

JSON是一种主要用于通信的字符串格式。如果我们想将JSON字符串保存在文件中,它将是一个文本文件。在这种情况下,JSON或文本文件的任何其他内容之间没有区别。

您正在从Ajax调用接收JSON字符串,而不是JSON文件。您通过HTTP接收它,并且它被压缩(g-zipped)。因此,您要将压缩文本的大小与您正在创建的平面大小进行比较。压缩您正在创建的文件,您将其缩小到几乎相同的大小(取决于压缩工具和设置)。