Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python将base64解码为json文件_Python_Json_Base64_Zlib - Fatal编程技术网

python将base64解码为json文件

python将base64解码为json文件,python,json,base64,zlib,Python,Json,Base64,Zlib,因此,我尝试压缩一个JSON文件,并使用这个(两个内置函数)解压缩它 压缩过程工作得很好,但我不知道如何将其解压缩回JSON,因此我可以向其添加更多项。 这就是我尝试过的: path = r"mypath.json" print(json_zip(path)) with open(path, "w") as f: json.dump(json_zip(path), f, ensure_ascii=False, indent=4) with open(path, "r") as f:

因此,我尝试压缩一个JSON文件,并使用这个(两个内置函数)解压缩它
压缩过程工作得很好,但我不知道如何将其解压缩回JSON,因此我可以向其添加更多项。
这就是我尝试过的:

path = r"mypath.json"

print(json_zip(path))
with open(path, "w") as f:
    json.dump(json_zip(path), f, ensure_ascii=False, indent=4)

with open(path, "r") as f:
    file_data = json.load(f)
print(json_unzip(file_data))
打印输出:

{'base64(zip(o))': 'eJwNyjEKgDAQBdGrLOn1AHYaUewEsftNiKuskawkInh7U80rxtgGWDOnDHTMSYBR9biY+iQvA4NEF31BN4sP5Voe9YGmuCuwObk+2tzjyOv9UUW2BGjrM2s0PzCOIWs='}
C:\Users\Beeri\Google Drive\Finance\BPicks\Stock Info\daily data copy - Copy\A.json
也许我没有正确理解解压的概念,但我希望JSON看起来像以前一样。 JSON本身看起来像这样:

[
    {
        "date": "2020-05-18 16:00:00",
        "open": 83.79,
        "low": 83.67,
        "high": 83.79,
        "close": 83.67,
        "volume": 1855946
    },
    {
        "date": "2020-05-18 15:59:00",
        "open": 83.815,
        "low": 83.77,
        "high": 83.83,
        "close": 83.79,
        "volume": 1822469
    },
    {
        "date": "2020-05-18 15:58:00",
        "open": 83.9,
        "low": 83.78,
        "high": 83.9,
        "close": 83.815,
        "volume": 1803855
    }
]

根据您的代码:

压缩的_json=data['base64(zip(o))] >>>decompressed_json=zlib.decompresse(B64解码(压缩)) >>>解压的 “C:\\\\Users\\\\Beeri\\\\Google Drive\\\\Finance\\\\BPicks\\\\Stock Info\\\\daily data copy-copy\\\\A.json” >>>加载(解压缩的_json) 'C:\\Users\\Beeri\\Google Drive\\Finance\\BPicks\\Stock Info\\daily data copy-copy\\A.json' 正如Karl提到的,您基本上压缩了文件路径,而不是实际的文件: 试试这个


正确的;您请求的是文件的路径,而不是文件的内容。因此,当您
json\u解压缩结果时,您得到的是路径,而不是内容
json_-zip
希望收到解析的json,就像
json.load
result.worked!非常感谢您将此作为答案发布,以便我可以将此标记为已回答。
import zlib, json
from base64 import b64encode, b64decode

path = r"filename.json"

def compress_json(data):
    return {'base64(zip(o))': b64encode(zlib.compress(json.dumps(data).encode('utf-8'))).decode()}

def decompress_json(data):
    compressed_json =  data['base64(zip(o))']
    return json.loads(zlib.decompress(b64decode(compressed_json)))

with open(path, "r") as f:
    data = f.read()
    compressed_json = compress_json(data)
    print(compressed_json)
    """
    {'base64(zip(o))': 'eJxTio7JUwCCaggFAjFKKYklqTFKVkCWkYGRga6Bqa6hhYKhmZW
    BARDFKOkgq80vSM0DqbUw1jO3RJHJyS+HSpiZo0hkZKZnYNeSnJNfnIpdU1l+TmkuWM7QwtT
    U0sQMIlmrQ7T7Ta1MLfG638LQFIcHzHF6wMIYpwfQ/IbsASMjEzNLcjxggdcDuMLf3AKX83EH
    P3pgIDvfwBgYBVDnx+TFKgEASGiHCQ=='}
    """
    decompressed_json = decompress_json(compressed_json)
    print(decompressed_json)
    """
[
    {
        "date": "2020-05-18 16:00:00",
        "open": 83.79,
        "low": 83.67,
        "high": 83.79,
        "close": 83.67,
        "volume": 1855946
    },
    {
        "date": "2020-05-18 15:59:00",
        "open": 83.815,
        "low": 83.77,
        "high": 83.83,
        "close": 83.79,
        "volume": 1822469
    },
    {
        "date": "2020-05-18 15:58:00",
        "open": 83.9,
        "low": 83.78,
        "high": 83.9,
        "close": 83.815,
        "volume": 1803855
    }
]
"""