如何用PowerShell将TXT文件转换为带时间戳键的JSON文件?
实现TXT转带时间戳键的JSON文件
需求说明
原始TXT文件内容:
orange : 1 blue : 2 yellow : 3目标JSON格式(包含YYYYMMDD格式时间戳键):
{ "colors-20220906" : { "orange" : 1, "blue" : 2, "yellow" : 3 } }
Python实现方案
直接用Python脚本处理,灵活易修改:
import json from datetime import datetime # 读取目标TXT文件 with open('colors.txt', 'r', encoding='utf-8') as txt_file: lines = txt_file.readlines() # 解析每行的颜色与数值 color_data = {} for line in lines: clean_line = line.strip() if not clean_line: continue color, num = clean_line.split(' : ') color_data[color.strip()] = int(num.strip()) # 生成时间戳(当前日期,格式YYYYMMDD) # 若需指定固定日期,替换成 timestamp = "20220906" timestamp = datetime.now().strftime('%Y%m%d') # 构造最终JSON结构 result_json = {f"colors-{timestamp}": color_data} # 写入JSON文件,保留缩进格式 with open('colors_result.json', 'w', encoding='utf-8') as json_file: json.dump(result_json, json_file, indent=4)
Linux Shell实现方案
适合无Python环境的Linux系统:
#!/bin/bash # 生成当前日期的时间戳,格式YYYYMMDD # 指定固定日期则替换为:timestamp="20220906" timestamp=$(date +%Y%m%d) # 生成JSON文件头部 echo "{ \"colors-$timestamp\" : {" > colors_result.json # 解析TXT并生成键值对行,最后移除末尾逗号 awk -F' : ' '{printf " \"%s\" : %d,\n", $1, $2}' colors.txt | sed '$ s/,$//' >> colors_result.json # 生成JSON文件尾部 echo " } }" >> colors_result.json
内容的提问来源于stack exchange,提问作者kgv34
相关产品推荐
相关产品推荐

