多变量Base64编码需求:将3个环境变量键值对JSON转Base64
Hey Ronen, 我来帮你搞定这个需求!下面我会给出几种常用脚本语言的实现方案,你可以根据自己的运行环境选最合适的:
Bash 脚本实现
如果你的环境是类Unix系统(比如Linux、macOS),直接用系统自带的命令就能完成:
硬编码值的快速实现
适合你已经明确知道变量值的场景:
# 构造指定JSON并进行Base64编码 echo '{"VAR1": "313", "VAR2": "33344", "VAR3": "rovkssj"}' | base64
从环境变量动态读取的灵活实现
如果这三个变量已经是系统环境变量,用jq工具(大部分系统默认安装)可以动态生成JSON:
# 从系统环境变量中读取值,生成JSON后编码 jq -n --arg var1 "$VAR1" --arg var2 "$VAR2" --arg var3 "$VAR3" '{"VAR1": $var1, "VAR2": $var2, "VAR3": $var3}' | base64
Python 脚本实现
Python的JSON和Base64处理非常稳妥,适合需要嵌入到复杂逻辑中的场景:
硬编码值版本
import json import base64 # 定义目标键值对 env_vars = { "VAR1": "313", "VAR2": "33344", "VAR3": "rovkssj" } # 序列化为标准JSON字符串 json_str = json.dumps(env_vars) # 转字节后Base64编码,再转回字符串输出 encoded_result = base64.b64encode(json_str.encode('utf-8')).decode('utf-8') print(encoded_result)
读取系统环境变量版本
如果变量已经在环境中设置,直接读取更灵活:
import json import base64 import os # 从系统环境变量中读取对应值 env_vars = { "VAR1": os.getenv("VAR1"), "VAR2": os.getenv("VAR2"), "VAR3": os.getenv("VAR3") } json_str = json.dumps(env_vars) encoded_result = base64.b64encode(json_str.encode('utf-8')).decode('utf-8') print(encoded_result)
Node.js 脚本实现
适合前端或Node.js技术栈的场景:
硬编码值版本
// 引入Node.js内置的Buffer模块 const { Buffer } = require('node:buffer'); // 定义目标键值对 const envVars = { VAR1: '313', VAR2: '33344', VAR3: 'rovkssj' }; // 序列化为JSON字符串 const jsonStr = JSON.stringify(envVars); // 转Buffer后进行Base64编码 const encodedResult = Buffer.from(jsonStr).toString('base64'); console.log(encodedResult);
读取系统环境变量版本
const { Buffer } = require('node:buffer'); // 从process.env中读取系统环境变量 const envVars = { VAR1: process.env.VAR1, VAR2: process.env.VAR2, VAR3: process.env.VAR3 }; const jsonStr = JSON.stringify(envVars); const encodedResult = Buffer.from(jsonStr).toString('base64'); console.log(encodedResult);
小提示
不管用哪种方案,优先用语言内置的JSON序列化工具(比如json.dumps、JSON.stringify、jq),不要手动拼接JSON字符串——这样能自动处理特殊字符的转义,避免格式错误。
内容的提问来源于stack exchange,提问作者Ronen Noimark




