1

Python で読み取り可能なフォルダー ツリーを作成するために、Mega API と Python を使用しています。現時点では、Mega の API が提供する JSON 応答を使用していますが、何らかの理由で解析に問題があります。以前は、単純に以下の形式で simplejson を使用していましたが、現在は機能していません。現時点では、ファイル名を取得しようとしています。どんな助けでも大歓迎です!

import simplejson    

megaResponseToFileSearch = "(u'BMExefXbYa', {u'a': {u'n': u'A Bullet For Pretty Boy - 1 - Dial M For Murder.mp3'}, u'h': u'BMExXbYa', u'k': (5710166, 21957970, 11015946, 7749654L), u'ts': 13736999, 'iv': (7949460, 15946811, 0, 0), u'p': u'4FlnwBTb', u's': 5236864, 'meta_mac': (529642, 2979591L), u'u': u'xpz_tb-YDUg', u't': 0, 'key': (223xx15874, 642xx8505, 1571620, 26489769L, 799460, 1596811, 559642, 279591L)})"

jsonRespone = simplejson.loads(megaResponseToFileSearch)

print jsonRespone[u'a'][u'n']

エラー:

Traceback (most recent call last):
  File "D:/Projects/Mega Sync/megasync.py", line 18, in <module>
    jsonRespone = simplejson.loads(file4)
  File "D:\Projects\Mega Sync\simplejson\__init__.py", line 453, in loads
    return _default_decoder.decode(s)
  File "D:\Projects\Mega Sync\simplejson\decoder.py", line 429, in decode
    obj, end = self.raw_decode(s)
  File "D:\Projects\Mega Sync\simplejson\decoder.py", line 451, in raw_decode
    raise JSONDecodeError("No JSON object could be decoded", s, idx)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)

編集:

どこから弦を手に入れたのかと聞かれました。これは、Mega API を使用したファイルの検索に対する応答です。ここにあるモジュールを使用しています。https://github.com/richardasaurus/mega.py コード自体は次のようになります。

from mega import Mega
mega = Mega({'verbose': True})
m = mega.login(email, password)
file = m.find('A Bullet For Pretty Boy - 1 - Dial M For Murder.mp3')
print file
4

1 に答える 1

1

あなたが得ているのm.findは単なるpythonタプルで、1番目(0番目の次)の要素は辞書です:

(u'99M1Tazb',
 {u'a': {u'n': u'test.txt'}, 
  u'h': u'99M1Tazb', 
  u'k': (1145485578, 1435138417, 702505527, 274874292), 
  u'ts': 1373482712,
  'iv': (1883603069, 763415510, 0, 0), 
  u'p': u'9td12YaY', 
  u's': 0, 
  'meta_mac': (1091379956, 402442960),
  u'u': u'79_166PAQCA', 
  u't': 0,
  'key': (872626551, 2013967015, 1758609603, 127858020, 1883603069, 763415510, 1091379956, 402442960)})

ファイル名を取得するには、次を使用します。

print file[1]['a']['n'] 

したがって、まったく使用する必要はありませんsimplejson

于 2013-07-10T19:01:46.500 に答える