You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

多变量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.dumpsJSON.stringifyjq),不要手动拼接JSON字符串——这样能自动处理特殊字符的转义,避免格式错误。

内容的提问来源于stack exchange,提问作者Ronen Noimark

火山引擎 最新活动