0

パイソン 2.7.3

SillyWalk.getGroups(user_id = user)オウムのように、もういないユーザーのために走ったときに、次のエラーが発生しました。

Traceback (most recent call last):
    File "C:\Python\API\getgroups.py", line 32, in <module>
        Grp = SillyWalk.getGroups(user_id = user)
    File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 349, in handler
        parse_format=args['format'], **args)
    File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 435, in __wrap_in_parser
        return parser(self, data)
    File "c:\python27\lib\site-packages\SillyWalkapi-1.4.2-py2.7.egg\SillyWalkapi\__init__.py", line 278, in parse_etree
        raise SillyWalkError(u'Error: %(code)s: %(msg)s' % err.attrib)
SillyWalkError: Error: 1: User not found

try ... except私はステートメントを入れて問題を解決しようとしました:

try:
    Grp = SillyWalk.getGroups(user_id = user)
    g = 0
    for group in Grp.find('groups').findall('group'):
        g += 1
        u_ID  = user
        g_ID  = group.get('_ID')
        gName  = "" # group.get('name')
        HasParrot    = group.get('HasParrot')
        Priv   = group.get('Priv')
        Mbr    = group.get('members')
        threads = group.get('threads')

        tup = '{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\n'.format(u_ID, g_ID, gName.encode('utf-8'), HasParrot, Priv, Mbr, threads)
        OutFile.write(tup.encode('utf-8'))
except SillyWalkError:
    tup = '{0}\tNo Records Found\n'.format(u_ID)
    OutFile.write(tup.encode('utf-8'))

しかし、それは私に未定義のエラーを与えました:

Traceback (most recent call last):
    File "C:\Python\API\getgroups.py", line 47, in <module>
        except SillyWalkError:
NameError: name 'SillyWalkError' is not defined
>>> 

例外クラスを書くのはこれが初めての試みなので、誰かがその方法を教えてくれませんか? SillyWalk.getGroupsには、さまざまなエラーの理由から、十数個の異なるエラー番号があります。それぞれにケースが必要ですか?

私は永遠にあなたの借金になります !(あなたは私から何かを集めることはありませんが、それでも私はあなたに借りがあります!)

ところで: 私のスクリプトの中身を調べている間、誰かが私のgName問題を解決する方法を教えてくれるので、それを無効にする必要はありませんか? それは私に与え続けます:

Traceback (most recent call last):
    File "C:\Python\API\getgroups.py", line 44, in <module>
        OutFile.write(tup.encode('utf-8'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 54: ordinal not in range(128)
4

2 に答える 2

1

NameError: name 'SillyWalkError' is not defined名前SillyWalkErrorが定義されていないことを示すだけです。例外処理や例外クラスの作成に固有のものではありません。

SillyWalkError例外をキャッチしようとしているモジュールに名前をインポートしていないようです。なしで取得していたエラーはexcept、例外クラス自体が正常に機能していることを示しています。

于 2013-02-05T07:30:20.877 に答える
0

OK、スポーツファン!

少なくとも私がこれについて持っていた最初の質問は、私の多くの金髪の瞬間の1つの結果でした!金髪の瞬間!

except SillyWalk.SillyWalkError ...代わりに使用していたexcept SillyWalk***api***.SillyWalkError ...

助けてくれたみんなに感謝します!

于 2013-02-06T06:25:40.340 に答える