求与指定PowerShell代码等效的Python实现方案
用Python实现等效于指定PowerShell的JSON生成功能
你的PowerShell代码作用是读取证书文件的字节数据,构造指定结构的字典并转换为JSON,用于调用SecureVault的REST API。以下是对应的Python实现:
首先看原PowerShell代码:
$secretARgs = @{ fileName = "ssltls.crt" fileAttachment = [IO.File]::ReadAllBytes("c:\users\myuser\git\myrepos\ssltls.crt") } | ConvertTo-Json
Python实现代码
import json import base64 # 定义文件路径和文件名 file_path = r"C:\users\myuser\git\myrepos\ssltls.crt" file_name = "ssltls.crt" # 读取文件字节并转换为base64字符串(JSON不支持原始字节类型) with open(file_path, 'rb') as f: file_bytes = f.read() file_attachment = base64.b64encode(file_bytes).decode('utf-8') # 构造字典并转换为JSON secret_args = { "fileName": file_name, "fileAttachment": file_attachment } secret_args_json = json.dumps(secret_args) # 输出结果(可选) print(secret_args_json)
关键细节说明
- 读取文件字节:Python用
open(file_path, 'rb')以二进制模式读取文件,对应PowerShell的[IO.File]::ReadAllBytes - 字节转base64:JSON标准不支持直接序列化原始字节数组,PowerShell的
ConvertTo-Json会自动将字节数组转为base64字符串,因此Python中需要手动用base64.b64encode()转换并解码为UTF-8字符串 - 字典转JSON:
json.dumps()将Python字典转换为JSON字符串,对应PowerShell的ConvertTo-Json。如果需要格式化输出(便于调试),可以添加indent=4参数:json.dumps(secret_args, indent=4)
内容的提问来源于stack exchange,提问作者archcutbank
相关产品推荐
相关产品推荐

