我的服务器将通过套接字将JSON序列化为字符串并发送到另一台客户机。我会使用以下代码处理我的最终json:
import json
python_dict_obj = { "id" : 1001, "name" : "something", "file" : <???> }
serialized_json_str = json.dumps(python_dict_obj)
我希望我的 JSON 中有一个字段的值是文件,以字符串编码。从性能和互操作性方面考虑,使用 Python 编码文件的最佳方式是什么?Base64?二进制?只使用原始字符串文本?
编辑 - 对于那些建议使用 base64 的人,像这样?
# get file
import base64
import json
with open(filename, 'r') as f:
filecontents = f.read()
encoded = base64.b64encode(filecontents)
python_dict_obj['file'] = encoded
serialized_json_str = json.dumps(python_dict_obj)
# ... sent to client via socket
# decrpyting
json_again = json.loads(serialized)
filecontents_again = base64.b64decode(json_again['file'])
python_dict_obj['file'] = encoded.encode()
。否则,该值将是一个二进制的b'something'
,在json.dumps
中会导致错误。 - Adam Loving