繁体   English   中英

获取类型错误:字节索引必须是整数或切片,而不是 str

[英]Getting TypeError: byte indices must be integers or slices, not str

我有一个名为 Branches 的模型表,它将从在线托管的 CSV 文件中自动归档。 但是,我不断收到错误

我该如何解决这个问题? 谢谢

from django.db import models

class Branches(models.Model):

    ifsc       = models.CharField(max_length=1009)
    bank_id    = models.IntegerField()
    branch     = models.CharField(max_length=1009)
    address    = models.CharField(max_length=1500)
    city       = models.CharField(max_length=1999)
    district   = models.CharField(max_length=1999)
    state      = models.CharField(max_length=1000)
    bank_name  = models.CharField(max_length=1000)


    def __str__(self):
        return self.branch

from urllib.request import urlopen, Request
from io import StringIO
import csv

for row in urlopen('https://raw.githubusercontent.com/snarayanank2/indian_banks/dc7ac64137ecf24bfc564f3d6151331215cf4783/bank_branches.csv'):
    Branches.objects.create(ifsc=row['ifsc'], bank_id=row['bank_id'], branch=row['branch'], address=row['address'], city=row['city'], district=row['district'], state=row['state'], bank_name=row['bank_name'])

扩展 Daniel Nudelmans 评论,这是您将如何使用split与您当前的代码:

for row in urlopen('https://raw.githubusercontent.com/snarayanank2/...'):
    row = row.split(",")
    # row is now a list containing all the values from the row
    Branches.objects.create(ifsc=row[0], bank_id=row[1], branch=row[2], address=row[3], city=row[4], district=row[5], state=row[6], bank_name=row[7])

请记住,如果 CSV 具有标题(如“ifsc”、“bank_id”等作为第一行),则在 for 循环的第一次迭代中, row将是标题的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM