回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在开发一个Django应用程序,它从API获取JSON数据并将其存储在PostgreSQL数据库中。但在迁移应用程序时,我遇到了以下错误:</p>
<pre><code>ValueError: invalid literal for int() with base 10: '262,400,000'
</code></pre>
<p>回溯如下:</p>
^{pr2}$
<p>如何解决这个问题?在</p>
<p>这是我的代码模型.py公司名称:</p>
<pre><code>from django.db import models
from django.contrib.postgres.fields import JSONField
from django.core.validators import URLValidator
class Projects(models.Model):
project_id=models.CharField(max_length=50)
projectfinancialtype=models.CharField(max_length=10)
regionname=models.CharField(max_length=50)
prodline=models.CharField(max_length=50)
lendinginstr=models.CharField(max_length=100)
lendinginstrtype=models.CharField(max_length=10)
envassesmentcategorycode=models.CharField(max_length=10)
supplementprojectflg=models.CharField(max_length=10)
productlinetype=models.CharField(max_length=10)
projectstatusdisplay=models.CharField(max_length=10)
status=models.CharField(max_length=10)
project_name=models.CharField(max_length=100)
board_approval_month=models.CharField(max_length=10)
approvalfy=models.CharField(max_length=9)
boardapprovaldate=models.DateTimeField(auto_now=False, auto_now_add=False)
closingdate=models.DateTimeField(auto_now=False, auto_now_add=False)
lendprojectcost=models.IntegerField()
ibrdcommamt=models.IntegerField()
idacommamt=models.IntegerField()
totalamt=models.IntegerField()
grantamt=models.IntegerField()
borrower=models.CharField(max_length=20)
impagency=models.CharField(max_length=20)
countryshortname=models.IntegerField()
prodlinetext=models.CharField(max_length=20)
project_abstract=JSONField()
p2a_flag=models.CharField(max_length=10)
p2a_updated_date=models.DateTimeField(auto_now=False, auto_now_add=False)
country_namecode=models.CharField(max_length=100)
projectinfo=models.TextField()
sector1=JSONField()
theme1=JSONField()
theme2=JSONField()
theme3=JSONField()
url=models.TextField(validators=[URLValidator()])
totalcommamt=models.IntegerField()
mjthemecode=models.CharField(max_length=20)
ccsa_practice_name=models.CharField(max_length=100)
combined_practice_code=models.CharField(max_length=100)
theme_namecode=JSONField()#ArrayField(JSONField(), blank=True)
themecode=models.IntegerField()
countrycode=models.CharField(max_length=10)
countryname=models.CharField(max_length=100)
docty=models.TextField()
mjtheme_namecode=JSONField() #ArrayField(JSONField(), blank=True)
source=models.CharField(max_length=10)
projectdocs=JSONField() #ArrayField(JSONField(), blank=True)
combined_practice_name=models.CharField(max_length=100)
mjtheme=JSONField() #ArrayField(JSONField(), blank=True)
ccsa_practice_code=models.CharField(max_length=100)
teamleaderupi=models.IntegerField()
locations=JSONField()
facets=JSONField()
</code></pre>
<p>这是fetch.py存储在/management/commands下的文件/fetch.py公司名称:</p>
<pre><code>import requests
from django.core.management.base import BaseCommand
from aggregator.WorldBank.models import Projects
class Command(BaseCommand):
def handle(self, **options):
response = requests.get("https://search.worldbank.org/api/v2/projects?format=json&countryshortname_exact=India&source=IBRD&kw=N&rows=776")
data = response.json()
projects = data.get('projects')
for pdata in projects.values():
pdata['project_id'] = pdata.pop('id', None)
pdata['countryshortname'] = pdata.pop('countryshortname', None)
pdata['projectfinancialtype'] = pdata.pop('projectfinancialtype',None)
pdata['regionname'] = pdata.pop('regionname',None)
pdata['prodline'] = pdata.pop('prodline',None)
pdata['lendinginstr'] = pdata.pop('lendinginstr',None)
pdata['lendinginstrtype'] = pdata.pop('lendinginstrtype',None)
pdata['envassesmentcategorycode']=pdata.pop('envassesmentcategorycode',None)
pdata['supplementprojectflg']=pdata.pop('supplementprojectflg',None)
pdata['productlinetype']=pdata.pop('productlinetype',None)
pdata['projectstatusdisplay']=pdata.pop('projectstatusdisplay',None)
pdata['status']=pdata.pop('status',None)
pdata['project_name']=pdata.pop('project_name',None)
pdata['board_approval_month']=pdata.pop('board_approval_month',None)
pdata['approvalfy']=pdata.pop('approvalfy',None)
pdata['boardapprovaldate']=pdata.pop('boardapprovaldate',None)
pdata['closingdate']=pdata.pop('closingdate',None)
pdata['lendprojectcost']=pdata.pop('lendprojectcost',None)
pdata['ibrdcommamt']=pdata.pop('ibrdcommamt',None)
pdata['idacommamt']=pdata.pop('idacommamt',None)
pdata['totalamt']=pdata.pop('totalamt',None)
pdata['grantamt']=pdata.pop('grantamt',None)
pdata['teamleaderupi']=pdata.pop('teamleaderupi',None)
pdata['prodlinetext']=pdata.pop('prodlinetext',None)
pdata['project_abstract']=pdata.pop('project_abstract',None)
pdata['p2a_flag']=pdata.pop('p2a_flag',None)
pdata['p2a_updated_date']=pdata.pop('p2a_updated_date',None)
pdata['country_namecode']=pdata.pop('country_namecode',None)
pdata['projectinfo']=pdata.pop('projectinfo',None)
pdata['sector1']=pdata.pop('sector1',None)
pdata['theme1']=pdata.pop('theme1',None)
pdata['theme2']=pdata.pop('theme2',None)
pdata['theme3']=pdata.pop('theme3',None)
pdata['url']=pdata.pop('url',None)
pdata['totalcommamt']=pdata.pop('totalcommamt',None)
pdata['mjthemecode']=pdata.pop('mjthemecode',None)
pdata['theme_namecode']=pdata.pop('theme_namecode',None)
pdata['themecode']=pdata.pop('themecode',None)
pdata['countrycode']=pdata.pop('countrycode',None)
pdata['countryname']=pdata.pop('countryname',None)
pdata['docty']=pdata.pop('docty',None)
pdata['mjtheme_namecode']=pdata.pop('mjtheme_namecode',None)
pdata['source']=pdata.pop('source',None)
pdata['projectdocs']=pdata.pop('projectdocs',None)
pdata['mjtheme']=pdata.pop('mjtheme',None)
pdata['locations']=pdata.pop('locations',None)
pdata['facets']=pdata.pop('facets',None)
# other columns need to be ranamed
Projects.objects.create(**pdata)
</code></pre>
<p>这是我要将JSON响应存储到postgres数据库中的API URL:<a href="https://search.worldbank.org/api/v2/projects?format=json&countryshortname_exact=India&source=IBRD&kw=N&rows=10" rel="nofollow noreferrer">API URL</a></p>