programing

오류: Django 1.4에서 "사전 업데이트 시퀀스 요소 #0의 길이가 1입니다. 2가 필요합니다"

sourcejob 2022. 10. 14. 21:40
반응형

오류: Django 1.4에서 "사전 업데이트 시퀀스 요소 #0의 길이가 1입니다. 2가 필요합니다"

Django 1.4에 오류 메시지가 나타납니다.

dictionary update sequence element #0 has length 1; 2 is required

', 하다, 하다, 하다'와 같은 때 일어난 입니다.{% for v in values %}:

dictionary update sequence element #0 has length 1; 2 is required

Request Method:     GET
Request URL:    ...
Django Version:     1.4.5
Exception Type:     ValueError
Exception Value:    

dictionary update sequence element #0 has length 1; 2 is required

Exception Location:     /usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__, line 21
Python Executable:  /usr/bin/uwsgi-core
Python Version:     2.7.3
Python Path:    

['/var/www/',
 '.',
 '',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PIL',
 '/usr/lib/pymodules/python2.7']

Server time:    sam, 13 Jul 2013 16:15:45 +0200
Error during template rendering

In template /var/www/templates/app/index.html, error at line 172
dictionary update sequence element #0 has length 1; 2 is required

172     {% for product in products %}

Traceback Switch to copy-and-paste view

/usr/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response

                            response = callback(request, *callback_args, **callback_kwargs)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/contrib/auth/decorators.py in _wrapped_view

                    return view_func(request, *args, **kwargs)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/views/decorators/http.py in inner

                return func(request, *args, **kwargs)

    ...
▶ Local vars
./app/views.py in index

            context_instance=RequestContext(request))

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/shortcuts/__init__.py in render_to_response

        return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader.py in render_to_string

            return t.render(context_instance)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

                return self._render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in _render

            return self.nodelist.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

                    bit = self.render_node(node, context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

                return node.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader_tags.py in render

            return compiled_parent._render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in _render

            return self.nodelist.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

                    bit = self.render_node(node, context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

                return node.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/loader_tags.py in render

                result = block.nodelist.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/base.py in render

                    bit = self.render_node(node, context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/debug.py in render_node

                return node.render(context)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/template/defaulttags.py in render

            len_values = len(values)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/core/paginator.py in __len__

            return len(self.object_list)

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/query.py in __len__

                    self._result_cache = list(self.iterator())

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/query.py in iterator

                        obj = model(*row[index_start:aggregate_start])

    ...
▶ Local vars
/usr/lib/python2.7/dist-packages/django/db/models/base.py in __init__

                    setattr(self, field.attname, val)

    ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __set__

                value = self.field._attribute_class(value, self.field, obj)

    ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py in __init__

            super(HStoreDictionary, self).__init__(value, **params)

    ...
▶ Local vars

hstore queryset에 접속하려고 하면 다음과 같이 됩니다.

Traceback (most recent call last):
File "manage.py", line 14, in <module>
    execute_manager(settings)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 459, in execute_manager
    utility.execute()

File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)

File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)

File "/home/name/workspace/project/app/data/commands/my_command.py", line 60, in handle
    item_id = tmp[0].id,

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 207, in __getitem__
    return list(qs)[0]

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 87, in __len__
    self._result_cache.extend(self._iter)

File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 301, in iterator
    obj = model(*row[index_start:aggregate_start])

File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 300, in __init__
    setattr(self, field.attname, val)

File "/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py", line 38, in __set__
    value = self.field._attribute_class(value, self.field, obj)

File "/usr/local/lib/python2.7/dist-packages/djorm_hstore/fields.py", line 21, in __init__
    super(HStoreDictionary, self).__init__(value, **params)

ValueError: dictionary update sequence element #0 has length 1; 2 is required

코드는 다음과 같습니다.

tmp = Item.objects.where(HE("kv").contains({'key':value}))

if tmp.count() > 0:
            
    item_id = tmp[0].id,

난난 、 치치치치치치 거는거거 。"update sequence.hstore queryset을 사용하다템플릿 렌더링에서도 오류가 발생합니다. 재기동했습니다.uwsgi모든 것이 정상적으로 동작하지만, 에러는 나중에 재발합니다.

방금 이 문제에 부딪혔어요.의 코드에 근본 가 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★name=url (오류)pathDjango 2.0+)를 사용합니다.

예를 들어, 다음 함수는 질문에서 오류를 발생시킵니다.

url(r'^foo/(?P<bar>[A-Za-z]+)/$', views.FooBar.as_view(), 'foo')
path('foo/{slug:bar}/', views.FooBar, 'foo')

하지만 실제로 효과가 있는 것은, 다음과 같습니다.

url(r'^foo/(?P<bar>[A-Za-z]+)/$', views.FooBar.as_view(), name='foo')
path('foo/{slug:bar}/', views.FooBar, name='foo')

트레이스백이 도움이 되지 않는 이유는 내부적으로 Django가 지정된 positional 인수를 키워드 인수로 해석하려고 하기 때문입니다.kwargs문자열이 반복 가능하기 때문에 비정상적인 코드 경로가 펼쳐지기 시작합니다. 「」를 사용합니다.name=★★★★★★★★★★★★★★★★

나는 현악기와 사전을 만지작거리다가 이 오류가 났다.

dict1 = {'taras': 'vaskiv', 'iruna': 'vaskiv'}
str1 = str(dict1)
dict(str1)
*** ValueError: dictionary update sequence element #0 has length 1; 2 is required

따라서 문자열에서 dict를 얻으려면 실제로 해야 할 일은 다음과 같습니다.

dic2 = eval(str1)
dic2
{'taras': 'vaskiv', 'iruna': 'vaskiv'}

또는 보안상 리터럴_eval을 사용할 수 있습니다.

from ast import literal_eval

다음과 같은 작업을 시도하면 질문 오류가 발생합니다.

>>> a_dictionary = {}
>>> a_dictionary.update([[1]])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: dictionary update sequence element #0 has length 1; 2 is required

완전한 트레이스백을 보여주지 않으면 코드의 원인이 어디에 있는지 알 수 없습니다.

키워드 인수명을 url() 함수에 전달하는 것을 잊어버렸을 때, 상기의 문제에 직면했습니다.

오류가 있는 코드

 url(r"^testing/$", views.testing, "testing")

오류 없는 코드

url(r"^testing/$", views.testing, name="testing")

그래서 마지막으로 위의 오류를 제거했습니다.당신 경우엔 뭔가 다를 수 있어요.따라서 urls.py에서 URL 패턴을 확인하십시오.

Django에서 이 오류가 발생하여 수정한 방법은 다음과 같습니다.

오류가 있는 코드

urlpatterns = [path('home/', views.home, 'home'),]

수정

urlpatterns = [path('home/', views.home, name='home'),]

솔루션 »

키워드 인수 이름에 값을 뷰 이름으로 전달합니다.home ★★★★★★★★★★★★★★★★★」home-view등 to url()★★★★★★ 。

에러를 발생시킵니다.

url(r'^home$', 'common.views.view1', 'home'),

정답 ★

url(r'^home$', 'common.views.view1', name='home'),

재현된 에러는 다음과 같습니다.

>>> d = {}
>>> d.update([(1,)])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: dictionary update sequence element #0 has length 1; 2 is required
>>> 
>>> d
{}
>>> 
>>> d.update([(1, 2)])
>>> d
{1: 2}
>>> 
>>> d.update('hello_some_string')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>  
ValueError: dictionary update sequence element #0 has length 1; 2 is required
>>> 

시퀀스를 지정하고 요소 길이가 1이고 2가 필요한 경우 이러한 오류가 발생합니다.위의 코드를 참조해 주세요.처음에 tuple로 시퀀스를 줬을 때 길이가 1이었는데 오류가 발생하여 사전이 업데이트되지 않았습니다.두 번째로 두 가지 요소가 포함된 내부 태플을 줬을 때 사전이 업데이트 되었습니다.

같은 문제가 발생했는데 파라미터가 잘못되어 있습니다. »views.py:

return render(request, 'demo.html',{'items', items})    

하지만 나는 문제를 발견했다.{'items', items}로 .{'items': items}문제를 해결했습니다.

경우에는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★.get_context_data 중 는 되돌아오는 이었다.return render(self.request, 'es_connection_error.html', {'error':error});""/""를 하지 않고 /"context

오류는 매개 변수에서 발생합니다.매개 변수가 사전 개체인지 확인하십시오.인수 목록/태플일 경우 * 하나만 사용합니다.*params2개의 (2개의 *)**params목록/태플을 적절한 인수로 분해합니다.

는, 「JSON」을 실행해 주세요.json.loads(params)JSON 오브젝트가 문자열로서 동작하는 경우가 있기 때문에, 문자열로부터의 부하(부하)를 사용해 JSON으로 할 필요가 있습니다.

super(HStoreDictionary, self).__init__(value, **params)

이게 도움이 됐으면 좋겠네요!

키 또는 값에 단일 따옴표 또는 이중 따옴표가 있는지 사전에서 확인하십시오.

dict1 = {'hello': 'world', 'programmer's': 'have girlfriend'}

이 문제를 해결하려면 사전을 문자열로 변환한 다음 바꾸기 메서드를 사용하면 됩니다.

이 에러의 원인이 되는 다른 시나리오:

dict('{"a":1}')  # gives the error

것을 한 가지 은 '어느 정도'를하는 것입니다.eval

eval('{"a":1}')  # gives {"a":1}
urlpatterns = [ 
    path('',HomePageView.as_view(),name='home'),
]

잘못된 유형의 매개 변수를 사용하여 업데이트 방법을 호출하려고 할 때 이 문제가 발생했습니다.예상되는 dict는 다음과 같습니다.

{'foo': True}

통과된 것은 다음과 같습니다.

{'foo': "True"}

전달되는 모든 파라미터가 예상된 타입인지 확인합니다.

나도 비슷한 유형의 문제가 있었다. 또는 을 값에 이와 값을 해야 할 도 있습니다.NULL은 None입니다.그렇지 않으면 이와 같은 것을 사용해야 할 수 있습니다.
dic.update([(key,value)])

다음 에러를 호출했습니다.

dict(my_data)

이 문제를 해결했습니다.

import json

json.loads(my_data)

json 문자열을 dict로 변환하려고 할 때 이 문제에 직면했습니다.

력::'{\r\n "resource_id": "id",\r\n "resource_type": "resource"\r\n}'

「」를 사용합니다.dict()dict이 에러를 냈어요. 것이 방법일 거예요.json★★★★★★ 。

::json.loads(input_str)

저도 같은 문제가 있었는데 urls.py에서 '이름'이 빠진 것이 문제의 원인이었습니다.

잘못 이는 1개의 로 해야 합니다.★★★★★★★★★★★★★★★★★★,dictionary object:

  • 틀렸다: func(a=r)

  • 정답: func(a={'x':y})

은 또, 을 사용했을 때도 합니다.get_or_create수법

state,_ = Status.objects.get_or_create('Pending')

이 문제를 해결하려면 해당 키와 값을 추가합니다.

ㅇㅇ, 이렇게state,_ = Status.objects.get_or_create(name='Pending')

URL 경로를 확인해 주세요.이 문제를 수정하려면 URL을 변경해 주세요.

path_password_email/, requestpasswordresetemail, request-rest-email)

사용하는 대신

pathpassword_password_email/, requestpasswordresetemail, name="request-rest-email")

    I was getting this issue so this is how I solved it ( by doing an eval and strip 
    
    aggr = {}
    with open("output.txt", "r") as f:
        for line in f.readlines():
            for k, v in dict(eval(line.strip())).items():
                aggr.setdefault(k, 0)
                aggr[k] = aggr[k] + v
    
    print(aggr)
    
    print(aggr)
    
    The data I was reading was a text file with a dictionary objects
{'unknown': 298, 'a4a815d631c805ccd10dd2f1548baa57': 9724, '22b5a0ff959ce0b4036716cc0c2df68b': 1341, 'd186fde596dffaab46260765c7fcba61': 2052}
{'unknown': 323, '49e5357782510659cf083356f7d2a1ab': 9826, 'a4a815d631c805ccd10dd2f1548baa57': 9812, 'b615930608b8dcd217de7904d4463efb': 2409}

언급URL : https://stackoverflow.com/questions/17610732/error-dictionary-update-sequence-element-0-has-length-1-2-is-required-on-dj

반응형