首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 'dict‘对象没有'status’属性

Python 'dict‘对象没有'status’属性
EN

Stack Overflow用户
提问于 2018-06-28 03:22:02
回答 1查看 4.9K关注 0票数 1

我目前正在用Python语言编写一个不一致的机器人,并且正在构建一个ip info命令。但是,当我尝试运行它时,它显示以下错误:

代码语言:javascript
复制
'dict' object has no attribute 'status'

这是我当前的python代码:

代码语言:javascript
复制
import discord
import datetime
import pymysql
import time
from datetime import timedelta, timezone
import asyncio
import re
import os
import requests
import json

if message.content.startswith('!ipinfo'):
    input = message.content.replace('!ipinfo', '').strip()

    try:
        req = requests.get('http://ip-api.com/json/{}'.format(input))
        resp = json.loads(req.content.decode())

        if resp.status.code == 200:
            if resp['status'] == 'success':
                # valid ip
                await channel.send(content='IP Logging Here.')
            elif resp['status'] == 'fail':
                await channel.send(content='API Request Failed.')
        else :
            await channel.send(content='HTTP Request Failed: Error {}'.format(req.status_code))
    except Exception as e:
        print(e)

这是我应该从API获取的数据:(测试IP)

代码语言:javascript
复制
{  
   "as":"AS15169 Google LLC",
   "city":"Mountain View",
   "country":"United States",
   "countryCode":"US",
   "isp":"Google",
   "lat":37.4192,
   "lon":-122.0574,
   "org":"Google",
   "query":"74.125.224.72",
   "region":"CA",
   "regionName":"California",
   "status":"success",
   "timezone":"America/Los_Angeles",
   "zip":"94043"
}

有人知道如何修复这个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-28 03:25:24

问题在于您对resp.status.code的使用。

在使用Python request模块时,您应该使用resp.status_code。它获得一个字典作为响应,并查找status而不是status_code

在对我的回答做出响应之后,现在检查您的代码,您似乎正在寻找json.loads上的status_code

请尝试使用:req.status_code,这样您就可以在实际请求中查找status_code

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51070029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档