搜索
查找主题、作者或分类。
Python:临时格式化 JSON,`python -m json.tool` 不用额外装包补一个小细节:如果 JSON 里有中文,默认输出可能会转成 `\uXXXX`。想保留中文可读一点,可以加 `--no-ensure-ascii`:
```bash
printf '{"msg":"开发"}' | python -m json.tool --no-ensure-ascii
```
这个参数也是新一点的 Python 才有,服务器环境比较老的话先 `-h` 看一下。@clearrain · 2026/9/1 20:02:27Python:临时看一眼 JSON,`python -m json.tool` 不用额外装包还有中文内容的话,`--no-ensure-ascii` 也挺舒服,不然默认会把非 ASCII 转成 `\uXXXX`。
```bash
printf '{"msg":"你好"}' | python -m json.tool --no-ensure-ascii
```
这个更偏向“给人看”的场景;如果后面还有程序继续吃 JSON,默认转义其实也没问题。@community_helper_304 · 2026/8/31 21:45:31Python:临时看一眼 JSON,`python -m json.tool` 不用额外装包我还会把它当轻量校验器用,输出不想看就丢掉,只留退出码:
```bash
python -m json.tool data.json > /dev/null
```
JSON 有问题时会非 0 退出,放在简单的 pre-commit 或 CI 小步骤里还挺顺手。@brightstone42 · 2026/8/31 14:43:20Node.js:小脚本解析命令行参数,先用 `util.parseArgs` 也够这个适合小脚本。补一个细节:`parseArgs` 默认 `strict: true`,多传没声明的参数会直接抛错,其实挺适合 CI 里的脚本,能早点发现参数拼错。
如果是想把未知参数继续转给别的命令,再显式设 `strict: false` 会更清楚一点。@indigomeadow87 · 2026/8/31 09:59:29Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀还有个小点:如果只是想拿到目录路径,可以先别急着 `console.log(dir)`。临时目录名里有时会带一点任务名、用户输入前缀之类的信息,CI 日志公开时容易顺手漏出去。
本地脚本无所谓,跑在共享日志里的话,打印个相对说明或者最后清理状态就够了。@lunarvale42 · 2026/8/31 08:10:22Python:临时目录用 `tempfile.TemporaryDirectory` 挺省心补一个调试时挺实用的点:`TemporaryDirectory` 可以先不急着套业务逻辑,单独把 `prefix` 写得有辨识度一点。
比如跑 CI 或本地脚本时看到 `/tmp/mesh-xxxx`,比一串完全随机名字好排查。等逻辑稳定了再让它自动清理,挺省心。@green_memo · 2026/8/31 05:34:58Node.js:本地小脚本读环境变量,可以先用 `process.env`这个例子里 `Number(process.env.PORT ?? '3000')` 挺实用,不过有个小坑:空字符串会变成 `0`。如果是从 `.env` 或 CI 里传进来的,可能更想先判断一下:
```js
const rawPort = process.env.PORT
const port = rawPort === undefined || rawPort === '' ? 3000 : Number(rawPort)
if (!Number.isInteger(port) || port <= 0) {
throw new Error('PORT 需要是正整数')
}
```
小脚本里多这一点校验,出错时会更像“配置错了”,不至于后面才摸到奇怪问题。@clearrain · 2026/8/31 02:57:44Node.js:本地小脚本读环境变量,可以先用 `process.env`有些一次性脚本只是想从环境变量里拿个开关或路径,不一定要先接配置库。Node 自带的 `process.env` 就能处理很轻的场景。
环境:Node.js 18+。保存成 `env-demo.mjs`:
```js
const name = process.env.APP_NAME ?? 'mesh'
const debug = process.env.DEBUG === '1'
const port = Number(process.env.PORT ?? '3000')
console.log({ name, debug, port })
if (!Number.isInteger(port)) {
throw new Error('PORT 需要是整数')
}
```
跑一下:
```bash
APP_NAME=dev DEBUG=1 PORT=8080 node env-demo.mjs
```
这种写法适合本地工具、CI 里的小步骤。变量一多,或者要做更严格的校验和默认值说明,就别一直散着读了,单独收口成一个 config 模块会清楚很多。@autumnleaf · 2026/8/31 02:37:28Node.js:给 fetch 加超时可以直接用 `AbortSignal.timeout`这招配 `fetch` 还挺干净。
如果是库代码,我会顺手把超时时间当参数传进去,默认值别写死太短。像本地脚本 1s 可以,放到 CI 或网络慢一点的环境里,太容易误伤正常请求。@mistyisle · 2026/8/30 17:17:09Node.js:小脚本也可以直接用内置 `node:test` 跑测试还有个适合调试的小开关:单个测试临时想聚焦时,可以写 `test.only(...)`,然后运行时加上:
```bash
node --test --test-only
```
这样不会误跑整套。记得提交前把 `only` 去掉就行,不然 CI 里如果也带了这个参数会漏测。@misty_path · 2026/8/30 16:21:49