插入带有逗号的整数数据

Inserting integer data that has commas

我正在尝试插入一大组(430 个条目)字典条目,其中一个键值对具有与其关联的薪水,格式为 $xx,xxx,xxx。我该如何解决这个问题,因为现在它将采用一个值并将其分成 3 列。

编辑:

def process_item(self, item, spider):
    if isinstance(item, TeamStats):
        for key, value in item.iteritems():
            if key == "division":
                print(item.get('division', ""))
                self.cur.execute("INSERT INTO Divs( division ) VALUES(?)", (item.get('division', ""),))
                self.con.commit() 

    if isinstance(item, Player):
        self.cur.execute("INSERT INTO Players(\
            player_name, \
            salary, \
            weight, \
            age, \
            height, \
            position, \
            college \
            ) \
            VALUES( ?, ?, ?, ?, ?, ?, ?)", \
            ( \
            item.get('name', ''),
            item.get('salary', 0),
            item.get('weight', 0),
            item.get('age', 0),
            item.get('height', ''),
            item.get('position', ''),
            item.get('college', '')
            ))

        self.con.commit() 
    return item

我插入到管道中的对象如下所示:

600,000 美元 2015-01-08 14:17:59-0500 [nbaStats] 调试:从 <200 http://espn.go.com/nba/team/roster//name/mil/milwaukee-bucks> 中删除 {'age': 你'21', 'college': u'路易斯安那州立大学', 'height': 你'6-9', 'name': 你"Johnny O'Bryant III", 'position': 你'PF', 'salary': u'$600,000', 'weight': 你'265'} 5,200,000 美元 2015-01-08 14:17:59-0500 [nbaStats] 调试:从 <200 http://espn.go.com/nba/team/roster//name/mil/milwaukee-bucks> 中删除 {'age': 你'30', 'college': u'\xa0', 'height': 你'6-11', 'name': u'Zaza Pachulia', 'position': 你'C', 'salary': u'$5,200,000', 'weight': 你'270'}

您可以更改 SQL 查询以在插入时从工资中删除逗号和美元符号。你可以通过改变

来做到这一点
VALUES( ?, ?, ?, ?, ?, ?, ?)", \

VALUES( ?,    REPLACE(REPLACE(?,',',''),'$',''),   ?, ?, ?, ?, ?)", \

这两个嵌套的 REPLACE 操作删除了 ,$ 字符。

或者您可以更改 python 代码以删除多余的字符:

        item.get('name', ''),
        re.sub(r'[,$]', "", item.get('salary', 0)),
        item.get('weight', 0),

无论哪种方式,清理注释数据都是简单的字符串处理。这两种方法都从数字字符串中删除所有美元符号和逗号。