【发布时间】:2021-02-18 14:33:57
【问题描述】:
我有一个 JSON 存储为像这样的字符串:
message = """{"info":{"keyVersion":1,"timestamp":"2020-11-05 20:00:00","encryptedData":"75657374696f6e732068617665207265636569"},"mac":"4d6163204b65792049732048455245"}"""
我的目标是计算存储在“信息”部分的数据的 MAC 值。 mac 是在字符串上计算的:
{"keyVersion":1,"timestamp":"2020-11-05 20:00:00","encryptedData":"75657374696f6e732068617665207265636569"}
当我尝试使用 json.loads 解析 JSON“消息”而不是提取信息部分并将其设置为字符串时,新字符串具有不同的格式。这是我的部分代码:
parsed_message = json.loads(message)
info_part = parsed_message["info"]
print json.dumps(info_part)
结果是:
{"encryptedData":"75657374696f6e732068617665207265636569", "keyVersion":1, "timestamp":"2020-11-05 20:00:00"}
当我在这个新字符串上计算 mac 值时,我得到的结果与初始消息中的 mac 不同(因为其中有更多数据并且字段顺序不同)。
我正在寻找一种仅将信息部分提取为字符串的方法,因为它在原始消息中提供。我尝试使用正则表达式,但我对计数 " 和 {}
感到困惑提前感谢您的帮助!
【问题讨论】:
标签: python json regex string parsing