1

我正在尝试从 python 发出一个 bitbucket 请求以返回我的存储库列表。它正在响应,但格式包含“\n”字符,我认为我的编码错误,但不知道如何修复它。

如何将我的响应编码为 JSON 格式。

theurl = 'https://api.bitbucket.org/1.0/user/repositories/';
username = 'xxxxx';
password = 'xxxxx';

passman = urllib2.HTTPPasswordMgrWithDefaultRealm();
passman.add_password(None, theurl, username, password);

authhandler = urllib2.HTTPBasicAuthHandler(passman);
opener = urllib2.build_opener(authhandler);
urllib2.install_opener(opener);
pagehandle = urllib2.urlopen(theurl);
output = pagehandle.decode('utf-8');
responseH = output.read();
4

1 回答 1

2

你为什么不尝试使用python-bitbucket下面的例子

from api import API
import datetime

    api = API("username", "**password**")
    repos = api.get_repositories()

    for repo in repos:
      print "Name: %s" % repo.name
      print "Owner: %s" % repo.owner
      print "Website: %s" % repo.website
      print "Description: %s" % repo.description
      print "Created on: %s" % datetime.datetime.strftime(repo.created_on, "%c")
      print "Language: %s" % repo.language
      print "SCM: %s" % repo.scm
      for issue in repo.get_issues():
        # Yes, this works too!
        print "Issue title: %s" % issue.title
        print "Issue priority: %s" % issue.priority
        print "Issue content:\n%s\n\n" % issue.content
      for change in repo.get_changesets(limit=5):
        print "Revision/Node: %d:%s" % (change.revision, change.node)
        # Since change.timestamp is a datetime object, we can use formatting on it.
        print "Timestamp: %s" % datetime.datetime.strftime(change.timestamp, "%c")
        print "Commit message:\n%s" % change.message
        print "Affected files: %s" % len(change.files)
        for f in change.files:
          print f.filename
        print "\n"
于 2012-08-20T19:22:12.907 回答