我在从Wikipedia抓取一些字符串数据时遇到问题。这是我的代码:
import scrapy
import json
class communes_spider(scrapy.Spider):
name = "city"
start_urls = ['https://fr.wikipedia.org/wiki/Liste_des_communes_de_Belgique_par_population']
def parse(self, response):
for city in response.css('table.wikitable td a::text').getall():
if city == '2':
pass
elif city == '3':
pass
else:
yield {
'cities': city + ', BE'
}
问题在于字符串使用法语,某些城市包含“è”或“é”。当我将它们导出到json文件时,像“ Li \ u00e8ge”这样的单词被导出为“Liège”。如何将那些弦变成法语字母?
答案 0 :(得分:5)
您不需要将它们转换为法语。 他们是一样的。 您可以按照以下步骤在ipython中检查它们
In [1]: l2 = 'Liège'
In [2]: l2
Out[2]: 'Li\xc3\xa8ge'
In [3]: print(l2)
Liège
答案 1 :(得分:1)
字符是文本中最小的组成部分。 'A','B','C'等都是不同的字符。 “È”和“Í”也是如此。字符是抽象的,并且根据您所谈论的语言或上下文而有所不同。
Unicode标准描述了代码点表示字符的方式。
代码点是通常在Base 16中表示的整数值。在标准中,代码点使用符号U+12CA
来写,表示具有值0*12ca
4810(十进制)的字符。
Unicode标准包含许多列出字符及其相应代码点的表。
In [14]: a='\xc3\xa8'
In [15]: b='è'
In [16]: if a==b:
....: print(True)
....:
True