“ASCII字符”codeC无法连接code字符U'\\ u2013'在第19位:顺序不在范围内(128) [英] 'ascii' codec can't encode character u'\u2013' in position 19: ordinal not in range(128)

查看:228
本文介绍了“ASCII字符”codeC无法连接code字符U'\\ u2013'在第19位:顺序不在范围内(128)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

\r
\r

<$c$c>---------------------------------------------------------------------------\r
UNI $ C $岑codeError回溯(最新最后调用)\r
C:\\用户\\ Deepayan \\桌面\\ Final_Dis​​sertation \\ beauty-1.py上述&lt;&模块GT;()\r
     71打印表\r
     72\r
---&GT; 73 table.to_csv('fout2',模式='A',标题= FALSE)\r
     74\r
     75 fout2.close()\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\ UTIL \\ decorators.pyc在包装(* ARGS,** kwargs)\r
     86其他:\r
     87 kwargs [new_arg_name] = new_arg_value\r
---&GT; 88回FUNC(* ARGS,** kwargs)\r
     89包装的回报\r
     90回_de precate_kwarg\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\在to_csv核心\\ frame.pyc(个体经营,path_or_buf 9月,na_rep,float_format,列标题,索引和index_label ,模式,编码,报价,quotechar,line_terminator,块大小,tupleize_cols,DATE_FORMAT,双引号,escapechar,** kwds)\r
   1152双引号=双引号,\r
   1153 escapechar = escapechar)\r
- &GT; 1154 formatter.save()\r
   1155\r
   1156如果path_or_buf是无:\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\中保存核心\\ format.pyc(个体经营)\r
   1398\r
   1399其他:\r
- &GT; 1400 self._save()\r
   1401\r
   1402最后:\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\在_save(个体经营)核心\\ format.pyc\r
   破1498\r
   1499\r
- &GT; 1500 self._save_chunk(start_i,end_i)\r
   1501\r
   1502 DEF _save_chunk(个体经营,start_i,end_i):\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\在_save_chunk核心\\ format.pyc(个体经营,start_i,end_i)\r
   1520 DATE_FORMAT = self.date_format)\r
   1521\r
- &GT; 1522 lib.write_csv_rows(self.data这样,九,self.nlevels,self.cols,self.writer)\r
   1523\r
   1524#从馆藏进口namedtuple\r
\r
C:\\用户\\ Deepayan \\应用程序数据\\本地\\ Enthought \\雨棚\\用户\\ LIB \\站点包\\大熊猫\\ lib.pyd在pandas.lib.write_csv_rows(熊猫\\ lib.c:16935)()\r
\r
UNI $ C $岑codeError:ASCIIcodeC无法连接code字符U'\\ u2013'在第19位:顺序不在范围内(128)

\r

\r
\r

我想从我的Python code输出导出到文件,并由于某种原因,我继续面临'ASCII字符codeC不能编码问题。我已经尝试了许多变化,但由于某些原因,这是行不通的。

 从__future__进口UNI code_literals
从BS4进口BeautifulSoup
进口的urllib2
导入CSV
进口OS
进口重
进口要求
进口大熊猫作为PD
进口里urlparse
进口的urllib
进口的urllib2
从BeautifulSoup进口BeautifulSoup
从BeautifulSoup进口BeautifulStoneSoup
进口的urllib
进口里urlparse
进口PDB
进口codeCS
从BeautifulSoup进口的Uni codeDammitfout2 = codecs.open('data.csv','R','utf-8')y的范围内(0,100,10)    URL =htt​​p://www.indeed.co.uk/jobs?q=%22data+science%22    PARAMS = {'开始'为:y}    url_parts =列表(urlparse.urlparse(URL))
    查询=字典(urlparse.parse_qsl(url_parts [4]))
    query.update(PARAMS)    url_parts [4] = urllib.urlen code(查询)
    Y = urlparse.urlunparse(url_parts)    URL = urllib2.urlopen(Y)
    soup1 = BeautifulSoup(URL)
    JOB_ID = []
    JOB_TITLE = []
    公司= []
    位置= []
    在soup1.findAll('A')标题:
        日本=(title.get(HREF'))        如果/ RC / CLK?在日本:
            job_id.append(title.get(HREF'))
    在soup1.findAll标题('A',{'itemprop':'标题'}):
        job_title.append(title.text.strip())
    在soup1.findAll标题('跨',{'itemprop':'名'}):
        company.append(title.text.strip())    在soup1.findAll标题('跨',{'itemprop':'addressLocality'}):
        location.append(title.text.strip())
    DF = pd.DataFrame(JOB_ID,列= ['JOB_ID'])
    DF1 = pd.DataFrame(JOB_TITLE,列= ['JOB_TITLE'])
    DF2 = pd.DataFrame(公司,列= ['公司'])
    DF3 = pd.DataFrame(位置,列= ['位置'])    表= pd.concat([DF,DF1,DF2,DF3]轴= 1).reset_index(跌落= TRUE)
    打印表    table.to_csv('fout2',模式='A',标题= FALSE)fout2.close()


解决方案

统一code字2013是一个破折号。该错误消息说,有一个破折号输入的地方,它不能写。你要么需要连接code或致电to_csv()之前删除有问题的字符(S)。

---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
C:\Users\Deepayan\Desktop\Final_Dissertation\beauty-1.py in <module>()
     71     print table
     72 
---> 73     table.to_csv('fout2', mode='a', header=False)
     74 
     75 fout2.close()

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\util\decorators.pyc in wrapper(*args, **kwargs)
     86                 else:
     87                     kwargs[new_arg_name] = new_arg_value
---> 88             return func(*args, **kwargs)
     89         return wrapper
     90     return _deprecate_kwarg

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\frame.pyc in to_csv(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, quoting, quotechar, line_terminator, chunksize, tupleize_cols, date_format, doublequote, escapechar, **kwds)
   1152                                      doublequote=doublequote,
   1153                                      escapechar=escapechar)
-> 1154         formatter.save()
   1155 
   1156         if path_or_buf is None:

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\format.pyc in save(self)
   1398 
   1399             else:
-> 1400                 self._save()
   1401 
   1402         finally:

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\format.pyc in _save(self)
   1498                 break
   1499 
-> 1500             self._save_chunk(start_i, end_i)
   1501 
   1502     def _save_chunk(self, start_i, end_i):

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\core\format.pyc in _save_chunk(self, start_i, end_i)
   1520                                         date_format=self.date_format)
   1521 
-> 1522         lib.write_csv_rows(self.data, ix, self.nlevels, self.cols, self.writer)
   1523 
   1524 # from collections import namedtuple

C:\Users\Deepayan\AppData\Local\Enthought\Canopy\User\lib\site-packages\pandas\lib.pyd in pandas.lib.write_csv_rows (pandas\lib.c:16935)()

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 19: ordinal not in range(128) 

I am trying to export the output from my Python code to a file and for some reason I continue to face "'ascii' codec can't encoding issue". I have tried many alterations but for some reason, it just doesn't work.

from __future__ import unicode_literals
from bs4 import BeautifulSoup
import urllib2
import csv
import os
import re
import requests
import pandas as pd
import urlparse
import urllib
import urllib2
from BeautifulSoup import BeautifulSoup
from BeautifulSoup import BeautifulStoneSoup
import urllib
import urlparse
import pdb
import codecs
from BeautifulSoup import UnicodeDammit

fout2 = codecs.open('data.csv','r','UTF-8')

for y in range(0,100,10):

    url = "http://www.indeed.co.uk/jobs?q=%22data+science%22"

    params = {'start':y}

    url_parts = list(urlparse.urlparse(url))
    query = dict(urlparse.parse_qsl(url_parts[4]))
    query.update(params)

    url_parts[4] = urllib.urlencode(query)
    y = urlparse.urlunparse(url_parts)

    url = urllib2.urlopen(y)
    soup1 = BeautifulSoup(url)


    job_id = []
    job_title = []
    company = []
    location = []        


    for title in soup1.findAll('a'):
        japan = (title.get('href'))

        if "/rc/clk?" in japan:
            job_id.append(title.get('href'))


    for title in soup1.findAll('a',{'itemprop' : 'title'}):
        job_title.append(title.text.strip())


    for title in soup1.findAll('span',{'itemprop' : 'name'}):
        company.append(title.text.strip())



    for title in soup1.findAll('span',{'itemprop' : 'addressLocality'}):
        location.append(title.text.strip())


    df = pd.DataFrame(job_id, columns=['job_id'])
    df1 = pd.DataFrame(job_title, columns=['job_title'])
    df2 = pd.DataFrame(company, columns=['company'])
    df3 = pd.DataFrame(location, columns=['location'])

    table = pd.concat([df, df1, df2,df3], axis=1).reset_index(drop=True)
    print table

    table.to_csv('fout2', mode='a', header=False)

fout2.close()

解决方案

Unicode character 2013 is an em dash. The error message is saying that there's an em dash somewhere in the input, and it can't write it. You'll either need to encode or remove the problematic character(s) before calling to_csv().

这篇关于“ASCII字符”codeC无法连接code字符U'\\ u2013'在第19位:顺序不在范围内(128)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆