现有一个文件夹,文件夹下有n多个json文件,读取json文件中obstacles这个列表,列表中有许多字典,找到每个字典中的id号,在根据找到的id号区找对应的字典中的velocity的x值和y值保存到分别的列表中,列表的数量由多少个id决定,完整代码
时间: 2024-02-01 22:16:41 浏览: 18
以下是完整的代码,其中假设json文件所在的文件夹路径为`folder_path`:
```python
import os
import json
folder_path = "/path/to/folder"
id_dict = {}
for file_name in os.listdir(folder_path):
if file_name.endswith(".json"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as f:
data = json.load(f)
obstacles = data.get("obstacles", [])
for obstacle in obstacles:
id_num = obstacle.get("id")
if id_num not in id_dict:
id_dict[id_num] = {"x": [], "y": []}
velocity = obstacle.get("velocity", {})
id_dict[id_num]["x"].append(velocity.get("x", 0))
id_dict[id_num]["y"].append(velocity.get("y", 0))
# 打印每个id对应的x和y值列表
for id_num, values in id_dict.items():
print(f"id: {id_num}")
print(f"x values: {values['x']}")
print(f"y values: {values['y']}")
```
在上述代码中,我们首先遍历文件夹中的所有json文件,然后对于每个文件,读取其中的obstacles列表。接着对于列表中的每个字典,我们提取其id号,并将其对应的velocity中的x和y值保存到id_dict字典中。最后,我们遍历id_dict字典,打印出每个id对应的x和y值列表。