我想找到一种方法来处理包含Python中数组的json输入。我所拥有的是以下内容:
import json
def main():
jsonString = '{"matrix":[["1","2"],["3","4"]]}'
jsonMatrix = json.loads(jsonString)
Matrix = jsonMatrix["matrix"]
term1 = Matrix[0][0] # yields: '1' expected: 1
term2 = Matrix[0][1] # yields: '2' expected: 2
result = term1 + term2 # yields: '12' expected: 3
return
if __name__ == "__main__":
main()
到目前为止,我已经找到了" json.loads"将json转换为python对象。但是,数字仍然表示为字符串。当然,我可以进行以下转换之一:
Matrix = map(int, Matrix[0])
term1 = Matrix[0]
term2 = Matrix[1]
或
term1 = map(int, Matrix[0][0])
term2 = map(int, Matrix[0][1])
但是,我正在寻找一种简单的方法将整个" Matrix" -object转换为int而不仅仅是Matrix [0]或Matrix [0] [0]例如。所以我正在寻找以下的正确版本:
Matrix = map(int, Matrix)
term1 = Matrix[0][0]
term2 = Matrix[0][1]
result = term1 + term2
我知道我可以使用for循环进行这种转换,但我想有更好的方法可以使用更高效的代码吗?
感谢您的帮助!
答案 0 :(得分:0)
import json
def main():
jsonString = '{"matrix":[["1","2"],["3","4"]]}'
jsonMatrix = json.loads(jsonString)
# convert entire matrix to integers
Matrix = [[int(v) for v in row] for row in jsonMatrix["matrix"]]
term1 = Matrix[0][0] # yields: 1
term2 = Matrix[0][1] # yields: 2
result = term1 + term2
print('result: {}'.format(result)) # -> result: 3
return
if __name__ == "__main__":
main()
答案 1 :(得分:0)
这是非常基本的,抱歉,但您可以通过以下任何一种方法将字符串转换为整数。
new=map(int,Matrix[0])
term1=new[0]
term2=new[1]
将字符串转换为数字,然后使用它们
term1=int(Matrix[0][0])
term2=int(Matrix[0][1])
您还可以执行以下操作:
j=[map(int, y) for y in Matrix]
term1=j[0][0]
term2=j[0][1]
我希望这会有所帮助。