我的网站有python代码。你知道吗
python --version
Python 2.7.13
./manage.py --version
1.11.11
在我的服务器更新之前,一切正常。一个函数必须读入一个文件,其中我有如下内容:
1,"TY - JOUR|T1 - BLABLABLA|.........|AU - name1|AU - name2|......"
我使用以下python代码:
from django.db import models
.....
class Sources(models.Model):
sourceid = models.IntegerField(primary_key=True)
ris = models.TextField()
class Meta:
db_table = u'sources'
def extractChain(self,tokens,st):
for token in tokens:
if(token.startswith(st)): break
result = token[5:]
if(st == "TY"):
result={
"JOUR": "journal",
"BOOK": "book",
"":""
}[result]
return result
def author(self,tokens,st):
a=[]
for token in tokens:
if(token.startswith(st)): a.append(token[5:])
return a
def extractRisVal(self,st):
tokens = self.ris.split("|")
result={
"TY": self.extractChain(tokens,st),
"T1": self.extractChain(tokens,st),
"JO": self.extractChain(tokens,st),
"VL": self.extractChain(tokens,st),
"IS": self.extractChain(tokens,st),
"SP": self.extractChain(tokens,st),
"EP": self.extractChain(tokens,st),
"PY": self.extractChain(tokens,st),
"AU": self.author(tokens,st),
"M1": self.extractChain(tokens,st),
"ER": self.extractChain(tokens,st)
}[st]
return result
Source.sourceid
给出1。没关系。但是当我使用方法extractRisVal(self,st)
时,比如:
extractRisVal("TY")
它按文字返回extractRisVal("TY")
,而它应该是journal
。你知道吗
如果在源类中添加测试方法:
def testCode(self):
a=[]
tokens = self.ris.split("|")
for token in tokens:
if(token.startswith("AU")): a.append(token[5:])
return a
它还我想要的。看来我对方法参数中的属性token和st有问题。因为每次我想用它,它都不起作用。你知道吗
一种解决方案是用以前的版本启动另一个虚拟env或conda env,然后再次尝试运行代码。你知道吗
相关问题 更多 >
编程相关推荐