Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Binary_Base64 - Fatal编程技术网

Python 我想将base64转换为json

Python 我想将base64转换为json,python,json,binary,base64,Python,Json,Binary,Base64,我想从base64转换为json。现有文件是.jpg,目的是将多个文件加载到一个文件夹中,并将其转换为一个json import base64 import json import os directory = os.listdir('C:/users/user/desktop/k-means/image') os.chdir('C:/users/user/desktop/k-means/image') data={} for file in directory: open_file

我想从base64转换为json。现有文件是.jpg,目的是将多个文件加载到一个文件夹中,并将其转换为一个json

import base64
import json
import os

directory = os.listdir('C:/users/user/desktop/k-means/image')
os.chdir('C:/users/user/desktop/k-means/image')
data={}

for file in directory:
    open_file = open(file,'rb')
    image_read = open_file.read()
    image_64_encode = base64.encodestring(image_read)
    data[""] = image_64_encode.decode('ascii')
    with open('words.json', 'w', encoding="utf-8") as make_file:
        print(json.dumps(data))
所需的输出如下。如何修改代码

{"data": 
"AAAAAGHLd/f39/clOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "label": 5}
{"data": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "label": 0}

你可以这样做:

import base64
import json
import os
from pprint import pprint

directory = os.listdir('C:/users/user/desktop/k-means/image')
os.chdir('C:/users/user/desktop/k-means/image')
data={}

for file in directory:
    base = os.path.basename(file)
    data["label"] = base
    open_file = open(file,'rb')
    image_read = open_file.read()
    image_64_encode = base64.encodebytes(image_read)
    data["data"] = image_64_encode.decode('ascii') 
    final_data = json.dumps(data)
    final_data = json.loads(final_data)
    pprint(final_data)

#output: {"data": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFB...", "label": "Capture.JPG"} 
注意
encodestring
是自Python3.1以来不推荐使用的别名,我改用了
encodebytes

要将此
final_data
写入json文件,必须将循环包含在words.json的
open
函数中:

with open('words.json', 'w') as make_file:
    for file in directory:
        base = os.path.basename(file)
        data["label"] = base
        open_file = open(file,'rb')
        image_read = open_file.read()
        image_64_encode = base64.encodebytes(image_read)
        data["data"] = image_64_encode.decode('ascii') 
        final_data = json.dumps(data)
        make_file.write(final_data)