Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python for Django上实现Youtube API v3时出现问题(错误:';unicode';对象没有属性';video';)_Python_Django_Youtube Data Api - Fatal编程技术网

在Python for Django上实现Youtube API v3时出现问题(错误:';unicode';对象没有属性';video';)

在Python for Django上实现Youtube API v3时出现问题(错误:';unicode';对象没有属性';video';),python,django,youtube-data-api,Python,Django,Youtube Data Api,我正在尝试使用 这是我的上传操作 视频/视图.py def upload(request): """ Upload video :param request: """ context = RequestContext(request) if request.method == 'POST': # do the following form_upload = VideoForm(request.POST, requ

我正在尝试使用

这是我的上传操作

视频/视图.py

def upload(request):
    """
    Upload video
    :param request:
    """

    context = RequestContext(request)

    if request.method == 'POST':
        # do the following
        form_upload = VideoForm(request.POST, request.FILES)

        if form_upload.is_valid():
            uploaded_video = form_upload.save(commit=True)
            uploaded_video.category = 23
            uploaded_video.privacyStatus = 'public'

            # send this file to youtube
            initialize_upload(uploaded_video.file_on_server.path, uploaded_video)

            messages.success(request, 'Video saved.')
        else:
            messages.error(request, 'Ooops.')

    else:
        form_upload = VideoForm(instance=request.user)

    context_dict = {'form_upload': form_upload}

    return render_to_response('videos/upload.html', context_dict, context)
这是Python的例子

但我收到以下错误消息:

  AttributeError at /videos/upload
'unicode' object has no attribute 'videos'
Request Method: POST
Request URL:    http://127.0.0.1:8000/videos/upload
Django Version: 1.7.2
Exception Type: AttributeError
Exception Value:    
'unicode' object has no attribute 'videos'
Exception Location: /home/ymorin007/workspace/sites/humor15.com/src/videos/upload_video.py in initialize_upload, line 108
Python Executable:  /home/ymorin007/.virtualenvs/humor15/bin/python2.7
Python Version: 2.7.6
Python Path:    
['/home/ymorin007/workspace/sites/humor15.com/src',
 '/home/ymorin007/Softwares/pycharm-4.0/helpers/pydev',
 '/home/ymorin007/workspace/sites/humor15.com/src',
 '/home/ymorin007/.virtualenvs/humor15/lib/python2.7',
 '/home/ymorin007/.virtualenvs/humor15/lib/python2.7/plat-x86_64-linux-gnu',
 '/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-tk',
 '/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-old',
 '/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages']
Server time:    Wed, 21 Jan 2015 15:33:22 -0400
Traceback Switch to copy-and-paste view

/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view
                return view_func(request, *args, **kwargs) ...
▶ Local vars
/home/ymorin007/workspace/sites/humor15.com/src/videos/views.py in upload
            initialize_upload(uploaded_video.file_on_server.path, uploaded_video) ...
▶ Local vars
/home/ymorin007/workspace/sites/humor15.com/src/videos/upload_video.py in initialize_upload
  insert_request = youtube.videos().insert( ...
▶ Local vars
我找不到这个错误的任何解释。任何帮助都将不胜感激。谢谢


顺便说一句,这是我第一次使用Python和youtube数据API。

回溯告诉您,您试图在unicode(字符串)对象上调用不受支持的方法。这似乎是views.py中该行的结果:

initialize_upload(uploaded_video.file_on_server.path, uploaded_video)
下面是示例所显示的内容:

 youtube = get_authenticated_service(args)
 try:
    initialize_upload(youtube, args)

您似乎想将服务对象的实例传递给此函数,而不是上传视频的路径。

请原谅我的愚蠢,但您能给我一个提示,说明我应该传递什么样的服务对象吗。谢谢。在这个例子中,它是youtube=get\u authenticated\u服务(args)。在本例中,args是从调用脚本的命令行填充的。您需要仔细查看if uuuu name uuuuu='\uuuuuuu=main uuuuu'下的代码,以查看需要在此处传递什么类型的参数。我不确定initialize_upload(youtube,options)的第一个参数:我已经添加了文件的路径,但可能需要与选项一起使用。但在这种情况下,youtube的论点是什么?此外,我还查看了名称下的arg,并提供了所有这些arg。它来自示例中它上面的一行:youtube=get_authenticated_service(args),但对于youtube arg,我需要从my view.py发送什么参数。到目前为止,我有以下内容:初始化上传(上传到服务器路径上的上传视频文件,上传视频)
 youtube = get_authenticated_service(args)
 try:
    initialize_upload(youtube, args)