Python 写入csv/xlsx url编码字
我有很多匈牙利语单词是从我使用的API中获得的。 据我所知,这些词是用url编码的 例如,匈牙利语中的“kószolgat”一词来源于API,如下所示:Python 写入csv/xlsx url编码字,python,urlencode,Python,Urlencode,我有很多匈牙利语单词是从我使用的API中获得的。 据我所知,这些词是用url编码的 例如,匈牙利语中的“kószolgat”一词来源于API,如下所示: k%C3%B3szolgat 我想获得匈牙利语的原始单词,并将其写入csv/xlsx文件 谢谢你的帮助 from openpyxl import load_workbook, Workbook xls = load_workbook('output.xlsx') output_file = Workbook() output = output
k%C3%B3szolgat
我想获得匈牙利语的原始单词,并将其写入csv/xlsx文件
谢谢你的帮助
from openpyxl import load_workbook, Workbook
xls = load_workbook('output.xlsx')
output_file = Workbook()
output = output_file.active
output.title = 'My data sheet'
output.append(["Title one", "Title two"])
for line in your_api:
# Depending on a lot of encoding parameters (Your locale, the applications locale, the API locale etc)
value_one = urllib.unquote(line[1]).decode('utf-8')
value_two = ...
output.append([value_one, value_two])
现在,这解决了“写入excel”部分的问题,编码很棘手。
这取决于您的控制台、语言环境以及API的语言环境
我猜你可能会。解码“iso-8859-15”或其他东西,看看是否可行,但通常大多数控制台使用UTF-8。该模块不支持Unicode,但支持8位干净字节字符串,因此可以使用该模块将UTF8编码的数据写入CSV文件
由于数据似乎是urlencoded UTF8,您可以将其解压缩并写入CSV文件
>>> from urllib import unquote_plus
>>> from_api = 'k%C3%B3szolgat'
>>> unquoted = unquote_plus(from_api)
>>> unquoted # UTF-8 encoded byte string
'k\xc3\xb3szolgat'
>>> unquoted.decode('utf8') # returns a unicode string
u'k\xf3szolgat'
但您不需要将其转换为unicode即可将其写入CSV,只需将其解压缩并将其作为UTF-8写入CSV即可:
import csv
from urllib import unquote_plus
with open('output.csv', 'w') as outfile:
writer = csv.writer(outfile)
from_api = 'k%C3%B3szolgat'
writer.writerow(['some value', unquote_plus(from_api), 'another value'])
运行output.csv后,其内容将为:
尝试在“utf8”中解码数据。发布您的代码将更容易建议如何处理它,但请看一下我尝试过这样做:打印urllib。取消引用“k%C3%B3szolgat”。解码“utf8”,但打印打印“kószolgat”,当我不使用打印时,我在python shell中得到了u'k\xf3szolgat'。你能回答你的问题吗?@NuritIzraelov了解python版本也很重要。 some value,kószolgat,another value