Python特殊数组访问问题:无引号键数组如何按指定方式取值
问题解答
首先你给出的数组定义不是合法的Python语法:
Array= [{Client: 1, Budget: 520, Name: "Oscar"},{Client: 2, Budget: 430, Name: "Jane"}]
Python里字典的字符串键必须加引号,否则会把Client、Budget这些标识符当成变量名,运行时直接抛出NameError——因为这些变量根本没定义。
所以你问的两种访问方式都无法直接生效:
- 执行
print(Array[0])之前,Array的定义就会报错,根本到不了打印步骤。 - 就算强行定义了Array,
Array[0][Budget]也会因Budget是未定义变量报错。
正确处理方式
把数组改成合法的Python字典数组,给所有字符串键加上引号:
Array= [{'Client': 1, 'Budget': 520, 'Name': "Oscar"},{'Client': 2, 'Budget': 430, 'Name': "Jane"}]
这时就能正常访问:
print(Array[0])输出:{'Client': 1, 'Budget': 520, 'Name': 'Oscar'}- 访问预算需要用字符串键:
print(Array[0]['Budget']),输出:520
如果这个输入格式来自其他语言(比如JavaScript的对象数组),可以先把键替换成带引号的形式,或者用json模块处理(JSON要求键是双引号):
import json # 先转成JSON兼容的字符串(给键加双引号) json_str = '[{"Client": 1, "Budget": 520, "Name": "Oscar"},{"Client": 2, "Budget": 430, "Name": "Jane"}]' Array = json.loads(json_str) print(Array[0]['Budget']) # 输出520
内容的提问来源于stack exchange,提问作者cyka
相关产品推荐
相关产品推荐

