我已经阅读了很多关于此的问题,但找不到任何关于 str 的问题。
我得到了一个很长的字符串,它包含 16 个字节的名称,后跟 4 个字节的数字,并为 N 个人重复。示例如下:
*编辑:1)字符串是消息
2)在预期输出中添加麦克风
msg = 'George\0\0\0\0\0\0\0\0\0\0' + '0095' + 'Mikeeeeeeeeeeee\0' + '0100' + 'Kelly\0\0\0\0\0\0\0\0\0\0\0' + '0000'
现在我需要将这些数据存储到 json 对象中。我试过循环,但它总是重写之前存储的数据。我想要的东西如下所示,但对于更长的字符串,因为为每个数据编写 msg[start:end] 是完全迟钝的。
data = {}
data[msg[0:16]] = {
"marks" : msg[16:20]
}
data[msg[20:36]] = {
"marks" : msg[36:40]
}
data[msg[40:56]] = {
"marks" : msg[56:60]
}
预期输出:
{
"George\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000": {
"marks": "0095"
},
"Kelly\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000": {
"marks": "0000"
},
"Mikeeeeeeeeeeee\u0000": {
"marks": "0100"
}
}
谢谢
最佳答案
假设您想要所有对象的详细信息,即您的 data
中的 George、mike 和 kelly,并且您的 msg 仅在您访问 76 及以后时长度为 60.. 因此开始附加您的对象.你应该根据你想要的输出结果制作一个嵌套的 json,比如:
length = len(msg)
i = 0
data = {}
while i < length:
data[msg[i:i+16]] = {"marks" : msg[i+16:i+20]}
i += 20
print data
输出:
{'George\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00': {'marks': '0095'}, 'Mikeeeeeeeeeeee\x00': {'marks': '0100'}, 'Kelly\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00': {'marks': '0000'}}
希望对你有帮助
关于python - 将字符串存储到json对象python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44175871/