小编Tal*_*abi的帖子

当我尝试使用 urllib 发送请求时,出现 InvalidURL: URL can't contains control characters

我试图从用作 urllib 请求参数的链接获取 JSON 响应。但它给了我一个错误,它不能包含控制字符。

我该如何解决这个问题?

start_url = "https://devbusiness.un.org/solr-sitesearch-output/10//0/ds_field_last_updated/desc?bundle_fq =procurement_notice&sm_vid_Institutions_fq=&sm_vid_Procurement_Type_fq=&sm_vid_Countries_fq=&sm_vid_Sectors_fq= &sm_vid_Languages_fq=English&sm_vid_Notice_Type_fq=&deadline_multifield_fq=&ts_field_project_name_fq=&label_fq=&sm_field_db_ref_no__fq=&sm_field_loan_no__fq=&dm_field_deadlineFrom_fq=&dm_field_deadlineTo_fq =&ds_field_future_posting_dateFrom_fq=&ds_field_future_posting_dateTo_fq=&bm_field_individual_consulting_fq="
    
source = urllib.request.urlopen(start_url).read()
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

URL can't contain control characters. '/solr-sitesearch-output/10//0/ds_field_last_updated/desc?bundle_fq =procurement_notice&sm_vid_Institutions_fq=&sm_vid_Procurement_Type_fq=&sm_vid_Countries_fq=&sm_vid_Sectors_fq= &sm_vid_Languages_fq=English&sm_vid_Notice_Type_fq=&deadline_multifield_fq=&ts_field_project_name_fq=&label_fq=&sm_field_db_ref_no__fq=&sm_field_loan_no__fq=&dm_field_deadlineFrom_fq=&dm_field_deadlineTo_fq =&ds_field_future_posting_dateFrom_fq=&ds_field_future_posting_dateTo_fq=&bm_field_individual_consulting_fq=' (found at least ' ')
Run Code Online (Sandbox Code Playgroud)

python urllib beautifulsoup web-scraping

11
推荐指数
3
解决办法
4万
查看次数

如何在 python 中转换 '22-Jul-2020 14:00 (GMT 4.30) ' "22 7 2020 "

我想转换22-Jul-2020 14:00 (GMT 4.30)22 7 2020以便将其插入到我的数据库中。

非常感谢您的帮助。

python date-format python-3.x

5
推荐指数
1
解决办法
1364
查看次数

如何从python中的字符串中提取国家/地区

我有一些文本,其中可能包含也可能不包含国家/地区名称。例如:

' 尼日利亚:Hotspot Network LTD 农村电话可行性研究'

这就是我从中提取国名的方式。在我的第一次尝试中:

findcountry("Nigeria: Hotspot Network LTD Rural Telephony Feasibility Study")

def findCountry(stringText):
    for country in pycountry.countries:
        if country.name.lower() in stringText.lower():
            return country.name
    return None
Run Code Online (Sandbox Code Playgroud)

不幸的是,它给了我错误的输出,[Niger]而正确的输出是尼日利亚。注意尼日尔和尼日利亚是世界上两个不同的现有国家。

在第二次尝试中:

def findCountry(stringText):
    full_list =[]
    for country in pycountry.countries:
        if country.name.lower() in stringText.lower():
            full_list.append(country)

    if len(full_list) > 0:
        return full_list

    return None
Run Code Online (Sandbox Code Playgroud)

我得到['Niger', 'Nigeria']作为输出。但我找不到让尼日利亚作为我最终输出的方法。如何实现这一目标。

注意:这里我知道尼日利亚是正确的答案,但稍后我会将其放入代码中以选择文本中存在的最终国家名称,并且它应该具有非常高的检测准确度。

python

5
推荐指数
1
解决办法
140
查看次数

“需要一个项目列表,但得到类型“QuerySet”。”

我正在尝试使用 django Rest-framework 构建一个 API。我可以使用它的 post 方法,但是当我尝试使用 get 方法时,出现以下错误

{
    "error": [
        "Expected a list of items but got type \"QuerySet\"."
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码。

class FileUploadView(APIView):
    parser_class = (FileUploadParser,)
    serializer_class = FileSerializer
    
    def post(self, request, *args, **kwargs):
      file_serializer = self.serializer_class(data=request.data)

      if file_serializer.is_valid():
          file_serializer.save()
          return Response(file_serializer.data, status=status.HTTP_201_CREATED)
      else:
          return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    def get(self , request , *args , **kwargs):
        print("aaaa")
        query = org_details.objects.all()
        serializer = self.serializer_class(data=query, many=True)
        serializer.is_valid(raise_exception=True)
        return Response(serializer.data, status=status.HTTP_200_OK)

class FileSerializer(serializers.ModelSerializer):
    class Meta:
        model = org_details
        fields = "__all__" …
Run Code Online (Sandbox Code Playgroud)

django-rest-framework

1
推荐指数
1
解决办法
993
查看次数