python - 将字符串存储到json对象python

标签 python json

我已经阅读了很多关于此的问题,但找不到任何关于 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/

相关文章:

python - 具有阻塞功能的 Twisted LoopingCall

python - 在 __init__.py 中递归填充 __all__

python - 从源代码构建 rabbitmq

android - 在 Android 中解析 JSON 的可能方法

json - 使用 Play 2.3 和 Scala 2.11.1 将具有枚举属性的类转换为 Json 时出错

python - 从 SqlAlchemy 调用 MSSQL 存储过程

HTML 格式的 Python 电子邮件 mimelib

c# - 如何从 header 和详细信息类创建 Json

php - JSON 不使用 PHP 解析

javascript - 在 html() 之前替换() 并在两个字符串之间添加 "&"