python - 如何在 Python 中访问我的 JSON 中的元素?
问题描述
我正在尝试解析我的 JSON 中元素的获取值。
import json
f = open('links.json',)
data = json.load(f)
for i in data['jsonObject']['links']:
for y in data['jsonObject']['coordonates']:
if (i['take1'] == y):
point1 = y
if (i['take2'] == y):
point2 = y
print(point1['x'])
print(point1['y'])
print(point2['x'])
print(point2['y'])
f.close()
而我的json是这样的
{
"jsonObject": {
"coordonates": {
"id1": {
"x": 100,
"y": 60
},
"id2": {
"x": 50,
"y": 100
},
"id3": {
"x": -100,
"y": 20
},
"id4": {
"x": 30,
"y": 10
},
},
"links": [
{
"take1": "id4",
"take2": "id1",
},
{
"take1": "id4",
"take2": "id3",
},
{
"take1": "id3",
"take2": "id2",
},
{
"take1": "id2",
"take2": "id1",
},
],
},
}
使用我的代码,我想转到“链接”,获取两个 ID。当我有我的两个 id 时,我要“协调”。现在我想得到两个id的“x”和“y”。但我的问题是当我试图访问我拥有的“x”和“y”时
TypeError: string indices must be integers
当我打印时print(y['x'])
,我遇到了同样的问题。我无法访问 y 元素。
有人知道我的错误吗?我该怎么做才能得到我的'x'和'y'?
解决方案
y
只是关键,不是内容。但是您已经有一个字典来访问 id,因此不需要内部 for 循环。
with open('links.json') as f:
data = json.load(f)
coordinates = data['jsonObject']['coordonates']
for link in data['jsonObject']['links']:
point1 = coordinates[link['take1']]
point2 = coordinates[link['take2']]
print(point1['x'])
print(point1['y'])
print(point2['x'])
print(point2['y'])
推荐阅读
- c++ - c++中二维数组的两条对角线之和的绝对差
- python - AttributeError:模块 'torch' 没有 PyTorch 的属性 'rfft'
- typescript - Array.fill() 然后更改二维数组中的值会为 JS 中的列提供相同的输出
- cmd - 是否有 CMD 命令将文件移动到下一个更高的文件夹级别?
- android - 有没有办法从原生安卓应用创建 Facebook 事件?
- xamarin.forms - Xamarin Forms LibVlc MediaPlayerElement 在第二页 android 应用程序崩溃
- swiftui - SwiftUI - 如何消除文本内容和文本背景之间的差距?
- android - 在android studio中添加admob sdk时重复类
- c# - MVC 将多个流转换为单个 PDF
- javascript - 构建 c“compression-webpack-plugin”后 gzip 文件不加载