You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:解决AttributeError: 'dict' object has no attribute 'split'错误并提取目标坐标值

解决提取坐标并赋值变量的AttributeError问题

问题背景

我需要从以下字典数据中提取35.6547,56475,并将两个数值分别赋值给变量x和y:

data = {
    'data': 'xyz',
    'code': '<:c:605445> **[Code](https://traindata/35.6547,56475',
    'time': '2021-12-30T09:56:53.547',
    'value': 'True',
    'stats': '96/23',
    'dupe_id': 'S<:c-74.18'
}

但运行自己写的代码时,遇到了错误:

AttributeError: 'dict' object has no attribute 'split'

尝试将对象转换为元组、列表后,仍然出现相同错误。

错误原因分析

你的代码存在几个关键逻辑问题:

  • 首先,data应该被定义为字典对象,但你写了data = "above mentioned data",这直接导致后续操作逻辑混乱;
  • 循环for s in data.values()后,s会遍历字典里的所有值(比如'xyz'、时间字符串等),最后执行x, y = s.split(',', 1)时,s可能并非你需要的code字段字符串,甚至代码逻辑混乱后s指向了字典本身,自然触发split方法不存在的错误;
  • while循环的条件和逻辑和提取坐标的需求完全不相关,进一步干扰了变量的正确使用。

解决方案

我们可以直接定位到code字段,从中精准提取目标坐标,再分割赋值:

import os

# 正确定义字典数据
data = {
    'data': 'xyz',
    'code': '<:c:605445> **[Code](https://traindata/35.6547,56475',
    'time': '2021-12-30T09:56:53.547',
    'value': 'True',
    'stats': '96/23',
    'dupe_id': 'S<:c-74.18'
}

# 提取code字段的内容
code_str = data['code']
# 从URL中截取坐标部分:找到最后一个'/'后的内容
coords = code_str.split('/')[-1]
# 分割坐标为x和y
x, y = coords.split(',', 1)

# 输出结果验证
print(f"x: {x}, y: {y}")

# 如果需要保留quit/stop的断开逻辑,调整为如下形式:
while True:
    user_input = input("输入命令(quit/stop):")
    if user_input == "quit":
        os.system("disconnect")
        break
    elif user_input == "stop":
        break

代码说明

  1. 首先正确定义字典data,直接通过键名data['code']获取目标字符串,避免遍历所有值的混乱;
  2. 使用split('/')[-1]截取URL最后一个斜杠后的坐标部分,精准得到35.6547,56475;
  3. 用split(',', 1)将坐标字符串分割为两个部分,分别赋值给x和y;
  4. 调整了while循环的逻辑,让它和坐标提取的逻辑不冲突,同时实现你需要的断开连接功能。

内容的提问来源于stack exchange,提问作者Sukrut Shishupal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 06:55:27