TypeError:python中格式字符串不足的参数

时间:2019-12-18 05:48:20

标签: python mysql sql python-2.7 mysql-python

它显示类似TypeError的错误:格式字符串的参数不足,如何解决此问题。

views.py

psql postgres postgres <<_EOF_
> select 1;
> _EOF_
 ?column? 
----------
        1
(1 row)
psql U postgres <<_EOF_
UPDATE taskt SET update= '[{"id": 0, "timestamp": "2019-12-17T22:16:28.985Z", "statusUpdate": "three little piggies"}]' WHERE uri = '/rest/tasks/xyz';
_EOF_

urls.py

def GetMobilefollowpopularnewsproviderTest(request,user_id):
# from django.http import JsonResponse
print "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
if request.method == 'GET':
    # news_provider = request.POST.get("news_provider")
    print user_id
    cursor = connection.cursor()
    queryset = cursor.execute("select news_crawl_newsproviders.news_provider as id, 1 as status from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id='%s' union select news_crawl_newsproviders.news_provider, 0 from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id!='%s' and news_crawl_newsproviders.news_provider not in(select news_crawl_newsproviders.news_provider as id from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id='%s');select news_crawl_newsproviders.news_provider as id, 1 as status from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id='%s' union select news_crawl_newsproviders.news_provider, 0 from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id!='%s' and news_crawl_newsproviders.news_provider not in(select news_crawl_newsproviders.news_provider as id from news_crawl_newsproviders join  accounts_follownewsprovider on news_crawl_newsproviders.id=accounts_follownewsprovider.provider_id where accounts_follownewsprovider.user_id='%s');"%(user_id))
    dict = {}
    dict = dictfetchall(cursor)
    print(dict)
    context = {
        'posts': dict
    }
    return JsonResponse(context, safe=False)
return HttpResponse(status=201)

1 个答案:

答案 0 :(得分:0)

在您的查询集中中,尽管您一次通过了%s,但您拥有多个%(user_id)

您应该以您定义的格式字符串传递所有参数

cursor.execute("..." % (param1, param2, param3, param4,...))