Python中如何将JSON数据依次存入x1、x2等递增变量?
如何将JSON中的数值转为x1、x2...命名的变量
前提确认
你通过json.load读取的another_song应该是一个列表(如果你的JSON文件是标准数组格式,即数值被[]包裹)。如果原文件没有[],需要先修正格式,具体见下方注意事项。
方法1:直接生成x1、x2等全局变量
利用Python的globals()字典可以动态创建变量,完全符合你要的x1 = 0.0234形式:
import json # 推荐用with语句自动管理文件关闭 with open('beat_times_knownsong1.json') as g: another_song = json.load(g) # 遍历列表,从1开始计数生成变量名 for index, num in enumerate(another_song, start=1): globals()[f'x{index}'] = num # 测试使用示例 print(x1) # 输出第一个数值 print(x2) # 输出第二个数值 # 公式中直接用变量名即可,比如: # calc_result = x1 * 2 + x3
方法2:用字典存储(更推荐)
如果怕全局变量污染,或者需要批量管理这些数值,用字典存储是更规范的做法:
import json with open('beat_times_knownsong1.json') as g: another_song = json.load(g) # 生成键为x1、x2...的字典 x_dict = {f'x{i}': num for i, num in enumerate(another_song, start=1)} # 调用示例 print(x_dict['x1']) # 公式使用示例: # calc_result = x_dict['x1'] + x_dict['x2'] * 0.5
这种方式更易维护,尤其是当数值数量较多时,不会让命名空间变得混乱。
注意事项:修复非标准JSON格式
如果你的JSON文件只是单纯用逗号分隔数值、没有外层的[],需要先修正格式再解析:
import json with open('beat_times_knownsong1.json') as g: raw_content = g.read().strip() # 给内容包裹数组符号,转为标准JSON格式 standard_content = f'[{raw_content}]' another_song = json.loads(standard_content)
内容的提问来源于stack exchange,提问作者Chazzberry
相关产品推荐
相关产品推荐

