0

コードを開始します。

def add_credentials(request, username, password):
    base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
    request.add_header("Authorization", "Basic %s" % base64string)
    return request


def send(options, data, cb):
    if type(data).__name__ == "function":
        cb = data
        data = None
        print "YES"
    opener = urllib2.build_opener(urllib2.HTTPHandler)
    results = {}
    url = "http://%s:%s" % (options['host'], str(options['port']))
    url += "%s" % options['path']
    if data is not None:
        request = urllib2.Request(url, data=data)
    else:
        request = urllib2.Request(url)
    request.add_header("Content-Type", "application/json")
    if 'username' in options and "password" in options:
        add_credentials(request, options['username'], options['password'])
    request.get_method = lambda: options['method'].upper()
    content = opener.open(request)
    for get_json in content:
        results.update(json.loads(get_json))
    exec "cb(results)"

options = {"host": 'localhost', "port": 5984, "path": '/hello-world/mangos', "method": "GET"}



def cb(p):
    print p

send(options, cb, "")

CouchDB クライアントを構築していますが、ファイルを実行すると次のエラーが発生するという問題があります。

SyntaxError: 関数 'send' では修飾されていない exec は許可されていません。自由変数を持つネストされた関数が含まれています

これがどうなるかよくわかりません。Google で検索しましたが、問題を解決できるものはないようです :/ ご回答ありがとうございます D:

4

0 に答える 0