我想把字节数组转换成JSON格式,这是我的源代码:
my_bytes_value = b'[{\'Date\': \'2016-05-21T21:35:40Z\', \'CreationDate\': \'2012-05-05\', \'LogoType\': \'png\', \'Ref\': 164611595, \'Classe\': [\'Email addresses\', \'Passwords\'],\'Link\':\'http://some_link.com\'}]'
这是我想要的结果:
[{
"Date": "2016-05-21T21:35:40Z",
"CreationDate": "2012-05-05",
"LogoType": "png",
"Ref": 164611595,
"Classes": [
"Email addresses",
"Passwords"
],
"Link": "http://some_link.com"}]
谢谢你的帮助
编辑:
首先,我将字节转换为字符串:
my_new_string_value = my_bytes_value.decode("utf-8")
但是当我尝试加载到JSON时:my_json = json.loads(my_new_string_value)
我得到这个错误:
json.decoder.JSONDecodeError:应为值:第1行第174列(char 173)
您的
bytes
对象几乎是JSON,但它使用单引号而不是双引号,它需要是一个字符串。所以你只需要解码并替换引号。如果您想将其打印或保存为有效的JSON文件,可以将JSON加载到Python列表中,然后将其转储。例如输出
正如Antti Haapala在评论中提到的,我们可以使用
ast.literal_eval
将my_bytes_value
转换为Python列表,一旦我们将其解码为字符串。要将这个bytesrarray直接转换为json,可以首先使用decode()将bytesrarray转换为字符串,utf-8是标准的。更改引号。。最后一步是从转储的字符串中删除“,将json对象从字符串更改为列表。
相关问题 更多 >
编程相关推荐