Python请求带格式的JSON

时间:2012-08-20 19:08:51

标签: python urllib2

我正在尝试从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();

1 个答案:

答案 0 :(得分:2)

为什么不尝试使用python-bitbucketExample below

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"