首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django错误: ValueError:基数为10的int()的文本无效:'10,030‘

Django错误: ValueError:基数为10的int()的文本无效:'10,030‘
EN

Stack Overflow用户
提问于 2018-06-18 18:19:51
回答 2查看 177关注 0票数 0

使用此代码将csv导入到我的Django DB中。这是我的模型DB,当我保存的时候,我得到了错误。这就是创建错误的行

代码语言:javascript
代码运行次数:0
运行
复制
 23764,"HUA FU","vessel","DPRK4",-0- ,-0- ,-0- ,"10,030",-0- ,"Panama",-0- ,"Vessel Registration Identification IMO 9020003; Linked To: CHANG AN SHIPPING & TECHNOLOGY."

在我的数据库中,该列为vessel_dwt = models.IntegerField(blank=True, null=True)

我应该如何在我的数据库中放入列?作为浮点型,还是字符串?这是我的导入代码。

代码语言:javascript
代码运行次数:0
运行
复制
import csv, sys, os

# project_dir = "/Users/cohen/my-python-project/venv/ofac/ofac_project/ofac_sdn/import_save/"
# project_dir = "/Users/Dropbox/ofac_project/ofac_sdn/import_save/"
project_dir = "/Users/Dropbox/ofac_project"
sys.path.append(project_dir)
os.environ['DJANGO_SETTINGS_MODULE']='ofac.settings'

import django
django.setup()

from ofac_sdn.models import Ofac_Sdn
from ofac_sdn.models import Ofac_Add
from ofac_sdn.models import Ofac_Alt
from ofac_sdn.models import Ofac_Sdn_Comments


file    = 'new_sdn.csv'
file1   = 'new_add.csv'
file2   ='new_alt.csv'
file3   ='new_sdn_comments.csv'

data = csv.reader(open(file),delimiter=",")
for row in data:
    if row[0] !="Number":
        post = Ofac_Sdn()
        post.number = row[0]
        post.name = row[1]
        post.b_i=row[2]
        post.programe=row[3]
        post.more_info=row[4]
        post.vessel_call_sign=row[5]
        post.vessel_type=row[6]
        post.vessel_dwt=row[7]
        post.tonnage=row[8]
        post.vessel_flag=row[9]
        post.vessel_owner=row[10]
        post.dob_aka=row[11]
        post.save()

在导入之前,我要替换奇数字符:

代码语言:javascript
代码运行次数:0
运行
复制
import requests
import csv, os, sys
newstring = "null"
newinteger = str(0)
newstring1= "null"
newstring2= "null"
newstring3= "null"
with open('sdn.csv', 'r') as file1, open('new_sdn.csv', 'w') as file2:
    reader = csv.reader(file1, delimiter=',')
    writer = csv.writer(file2, delimiter=',')
    for row in reader:
        replaced7 = row[7].replace('-0-', newinteger)
        row[7] = replaced7           
        writer.writerow(row)

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-06-18 19:06:02

我已经把田里所有的昏迷都移走了。

我添加了以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
replaced7b=row[7].replace(',', '')
        row[7]=replaced7b
        replaced8 = row[8].replace('-0-', newinteger)
        row[8]=replaced8
        replaced8b=row[8].replace(',', '')
        row[8]=replaced8b
票数 1
EN

Stack Overflow用户

发布于 2018-06-18 19:09:42

你可以像这样使用一个线条。

post.vessel_dwt=int(''.join(row[7].split(',')))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50907282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档