【问题标题】:TypeError: not enough arguments for format string in pythonTypeError:python中格式字符串的参数不足
【发布时间】:2020-04-10 15:50:14
【问题描述】:

提示TypeError: not enough arguments for format string,如何解决。

views.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)

urls.py

url(r'followpopularnewsprovider/(?P<user_id>\d+)/$', 
 csrf_exempt(views.GetMobilefollowpopularnewsproviderTest), name='popularprovider')

【问题讨论】:

  • 在你的查询集中你有两个%s 虽然你通过%(user_id) 一次
  • 那怎么能多传一个user_id
  • 看下面的答案

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2013-10-27
    • 1970-01-01
    • 2020-04-12
    • 2012-06-24
    • 2020-10-17
    • 2015-10-16
    • 2012-06-11
    相关资源
    最近更新 更多