如何使用像列表这样的pandas读取csv文件中的嵌套列表

时间:2016-08-17 05:45:48

标签: python csv pandas scrapy nested-lists

我从一个网站" itjuzi.com"中删除了数据,并将嵌套列表存储在csv文件中,然后用pandas读取它。但是现在如何读取unicode字符串或嵌套列表就像一个清单?和编码?

enter image description here

代码是" pd.read_csv(' /root/code/company_info.csv' ;, encoding =' utf-8')"

源数据样本

" [[u' \ u5b5f \ u51e1 \ u5b87',u' \ u521b \ u59cb \ u4eba',u' \ u963f \ u72fc \ u5de5 \ u4f5c \ u5ba4 \ u521b \ u59cb \ u4eba \ u517cCEO',u' http://www.itjuzi.com/person/29395']]

所有源数据

http://7rf31y.com1.z0.glb.clouddn.com/company_info.csv

1 个答案:

答案 0 :(得分:-1)

unicode数据在那里,它只是没有渲染:

$ print(u'[\u9e64\u5e74\u5802\u4e2d\u533b\u9662]')
[鹤年堂中医院]

关于列表列表,您需要调整蜘蛛代码。默认情况下,scrapy ItemLoaders甚至Selector的eextract()方法返回一个值列表,即使其中只有一个值。

要解决此问题,只需确保值不是列表:

from scrapy.loader.processors import TakeFirst
from scrapy.loader import ItemLoader

def parse(self, response):
    # you can use .extract_first() function
    item = dict()
    item['name'] = response.xpath('//div').extract_first()
    yield item
    # or you can use itemloader
    class MyItemLoader(scrapy.loaders.ItemLoader):
        name_out = TakeFirst()
    loader = MyItemLoader(selector=response)
    loader.add_xpath('name', '//div')
    yield loader.load_item()