将字符串存储到python中的json对象

2024-04-25 12:11:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了很多关于这个的问题,但是找不到任何关于str的问题

我得到了一个长的str,由16个字节的名字和4个字节的数字组成,重复了N个人。示例如下:

*编辑:1)字符串为msg

2)将mike添加到预期输出中

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对象中。我总是在循环之前把数据重写。我想要的东西,工作如下,但为一个更长的字符串,因为写味精[开始:结束]因为每个数据都是完全延迟的。你知道吗

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"
    }
}

谢谢


Tags: 数据字符串编辑示例data字节msg数字
2条回答

假设您需要所有对象详细信息,即George、mike和kelly在您的data中,并且您的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'}}

希望这有帮助

import re
dict(re.findall(r'(\D+)(\d{4})', string))

它会返回像。。你知道吗

{'George\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00': '0095', 'Kelly\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00': '0000', 'Mikeeeeeeeeeeee\x00': '0100'} 

你现在把它作为dict,可以用你想要的任何格式来改变。你知道吗

相关问题 更多 >