我正在尝试使用CSV模块打开文件,但我收到了此错误。
return codecs.charmap_decode(input,self.errors,decoding_table)[0]UnicodeDecodeError:'charmap'编解码器无法解码7458位置的字节0x83:字符映射到
我检查了文件,文件编码是UTF-8...下面是我的代码。错误在第63行
import csv
import xml.etree.ElementTree as ET
import xml.dom.minidom as PT
import traceback
#Global variables
#Variable to hold file name
FILE_NAME = "CustomLabels.labels"
#Variable to hold delimiter
DELIMETE = ','
#Variable to hold root category in xml hierarchy
CUSTOM_LABELS = "CustomLabels"
#Variable to hold sub element in xml
LABELS = "labels"
#Variable to hold argument for CustomLabels category
XMLNS = 'xmlns'
#Variable to hold value for argument for CustomLabels category
URL = "http://soap.sforce.com/2006/04/metadata"
#variable to save file
SAVE_PATH = ""
#variable to hold file to read name
FILE_TO_READ = "CustomLabels.csv"
#Function to open the file with ugly XML
def openFile():
print('D:M|***| openFile')
try:
customLabelsFile = open(FILE_NAME, 'r+',encoding="utf-8")
except Exception:
traceback.print_exc()
return customLabelsFile
#Function to make pretty XML on output
def prettyXMLfile():
print('D:M|***| prettyXMLfile')
try:
dom = PT.parse(FILE_NAME)
pretty_xml_as_string = dom.toprettyxml()
except Exception:
traceback.print_exc()
return pretty_xml_as_string
#Function to save preetyXML
#para
#xml_file - it is a file from openFile Function
#context - it is a formatted xml
def saveAsPrertyXML(xml_file,context):
try:
n = xml_file.write(context)
xml_file.close()
except Exception:
traceback.print_exc()
with open(FILE_TO_READ,encoding="utf-8",errors='ignore',"rb") as csv_file:
csv_reader = csv.reader(csv_file, encoding='utf-8',delimiter=DELIMETE)
line_count = 0
listOfColumnNames = list()
customLabels = ET.Element(CUSTOM_LABELS)
customLabels.set(XMLNS,URL)
try:
for row in csv_reader:
if line_count == 0:
listOfColumnNames.append(row)
finalListOfColumns = listOfColumnNames[line_count]
line_count += 1
else:
index = 0
while index < len(finalListOfColumns):
if index == 0:
labels = ET.SubElement(customLabels, LABELS)
ET.SubElement(labels, finalListOfColumns[index]).text = row[index]
index += 1
line_count += 1
except Exception:
print(f'The line with error is {line_count}')
traceback.print_exc()
tree = ET.ElementTree(customLabels)
tree.write(FILE_NAME, xml_declaration=True,encoding='utf-8',method="xml")
uglyXML = openFile()
prettyXMLasString = prettyXMLfile()
saveAsPrertyXML(uglyXML,prettyXMLasString)
print(f'Generator pars {line_count} lines')
print('XML file saved succesfull')
好吧,我知道哪里出了问题
它应该是:
with open(FILE_TO_READ,"rt",encoding="utf-8") as csv_file:
而不是
with open(FILE_TO_READ,"rb+",encoding="utf-8") as csv_file:
当我使用时,我有这个问题。我使用anaconda和俄罗斯Windows。
问题内容: 我想制作搜索引擎,并按照某些网络中的教程进行操作。我想测试解析html 它得到错误 我在网上看到了一些使用encode()的解决方案。但是我不知道如何在代码中插入encode()函数。谁能帮我? 问题答案: 在Python 3中,文件会以文本(解码为Unicode)的形式为您打开。您无需告诉BeautifulSoup要解码的编解码器。 如果数据解码失败,那是因为您没有告诉调用文件读取文
问题内容: 我正在编写一个Python(Python 3.3)程序,以使用POST方法将一些数据发送到网页。通常在调试过程中,我会获取页面结果并使用print()功能将其显示在屏幕上。 代码是这样的: 该方法返回一个bytes编码页面的元素(格式正确的UTF-8文档),直到我停止使用Windows的IDLE GUI并改为使用Windows控制台时,这似乎还可以。返回的页面具有字符(破折号),打印功
问题内容: 我正在尝试制作一个从sqlite3数据库中获取数据的脚本,但是遇到了问题。 数据库中的字段为text类型,并且包含html格式的文本。见下面的文字 尝试提取数据的python代码如下。 是否有人对如何将其打印/写入文件有任何想法。是的,我知道这是打印到stdout的,但是当我尝试写入文件时会出现相同的UnicodeEncodeError。我尝试了文件对象的写入方法和。 问题答案: 当您
我在尝试将字符串编码为UTF-8时遇到了一些问题。我尝试过很多方法,包括使用和,但我得到了错误: UnicodeDecodeError:“ascii”编解码器无法解码位置1中的字节0xef:序号不在范围内(128) 这是我的字符串: 我不知道出了什么问题,知道吗? 编辑:问题是打印字符串不能正确显示。此外,当我试图转换它时,这个错误:
问题内容: 尝试打印从我在python 3.4中使用selenium请求的网站获得的“Á”时,我一直收到UnicodeEncodeError。 我已经在.py文件的顶部定义了 def是这样的: 和例外: 提前致谢 问题答案: 已经知道了。正如在此]答案中指出的那样,编码错误不是来自python,而是来自控制台使用的编码。因此,解决此问题的方法是运行命令(在Windows中): 将编码设置为UTF-