오류: 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
'programing' 카테고리의 다른 글
| MySQL에서 기능할 때 MariaDB 오류 발생 (0) | 2022.10.14 |
|---|---|
| ubuntu에 mysql이 설치되어 있는지 어떻게 확인할 수 있습니까? (0) | 2022.10.14 |
| 오브젝트 내의 여러 어레이를 평탄화 및 구별 (0) | 2022.10.14 |
| Java에서 익명 내부 클래스는 어떻게 사용됩니까? (0) | 2022.10.14 |
| JavaScript 형식 지정으로 문자열을 datetime으로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.14 |