You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python对JSON数据执行MD5哈希转换?

实现JSON数据的MD5哈希字段生成及学习资料推荐

问题背景

我熟悉用Python处理CSV格式数据转换,但刚接触JSON数据转换。现有JSON流数据,想给每条数据应用MD5算法生成哈希值,已经写好MD5哈希生成代码,但不知道怎么把它整合到JSON处理流程里。

现有MD5哈希生成脚本

import hashlib

# initializing string
Password= "kureen2022!"
AccountName = "ikire@gmail.com"


# Convert password to bytes
pw_byte = Password.encode()

# Generate Salt
salt = AccountName.lower().encode()  

# Concatenate salt with password, apply md5
result = hashlib.md5(salt+pw_byte)
pw_hash = result.hexdigest()

# printing Hash value.
print(pw_hash)

现有JSON处理脚本

import json

f = open('my_json.Json')

data = json.load(f)

for i in data['details']:
     print(i)

示例JSON数据

{
  "details" : [
   {
    "AccountName": "dojoujre",
     "Password": "password123"
    },
    {
    "AccountName": "dojoujre",
     "Password": "password007"
     }
  ]
}

目标输出

{
  "details" : [
   {
    "AccountName": "dojoujre",
     "Password": "password123",
     "Hash": "93837373930"
    },
    {
    "AccountName": "dojoujre",
     "Password": "password007",
     "Hash": "eer3er5t6t6y"
     }
  ]
}

实现步骤

1. 封装可复用的MD5哈希函数

把MD5逻辑改成可调用的函数,方便在遍历JSON数据时重复使用:

import hashlib

def generate_md5_hash(account_name, password):
    # 生成salt并转换为字节
    salt = account_name.lower().encode()
    pw_byte = password.encode()
    # 拼接salt与密码后生成MD5哈希
    result = hashlib.md5(salt + pw_byte)
    return result.hexdigest()

2. 整合JSON处理与哈希生成

读取JSON数据后,遍历每条详情数据,调用哈希函数生成值并添加新字段:

import json

# 读取JSON文件(用with语句自动管理文件关闭)
with open('my_json.Json', 'r') as f:
    data = json.load(f)

# 遍历每个条目,生成并添加Hash字段
for item in data['details']:
    item['Hash'] = generate_md5_hash(item['AccountName'], item['Password'])

# 打印处理结果
print(json.dumps(data, indent=2))

# 将结果写入新的JSON文件
with open('hashed_result.Json', 'w') as f:
    json.dump(data, f, indent=2)

3. 完整可运行代码

将两部分逻辑整合到一起:

import hashlib
import json

def generate_md5_hash(account_name, password):
    salt = account_name.lower().encode()
    pw_byte = password.encode()
    result = hashlib.md5(salt + pw_byte)
    return result.hexdigest()

# 读取原始JSON数据
with open('my_json.Json', 'r') as f:
    data = json.load(f)

# 为每条数据生成哈希字段
for item in data['details']:
    item['Hash'] = generate_md5_hash(item['AccountName'], item['Password'])

# 保存处理后的结果
with open('hashed_result.Json', 'w') as f:
    json.dump(data, f, indent=2)

# 控制台输出验证
print(json.dumps(data, indent=2))

JSON数据转换学习资料推荐
  • Python官方json模块文档:重点掌握序列化(json.dump/dumps)、反序列化(json.load/loads)的基础用法,以及Python与JSON数据类型的映射规则
  • Python核心编程相关章节:通过嵌套JSON结构(多层对象、数组)的处理练习,加深数据遍历、修改的逻辑理解
  • 实战类练习:尝试处理包含空值、特殊字符、复杂嵌套的JSON数据,掌握异常处理(比如KeyError、JSONDecodeError)的技巧

内容的提问来源于stack exchange,提问作者Abiodun Adeoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:01:00