我有一个PubMed id的数据集(CSV文件),我需要迭代它并为每个获取标题,年份发布,摘要和MeSH术语,然后我需要将其保存到具有此格式的CSV文件中:
var results = "";
function getFormData(event, val1) {
event.preventDefault();
var pw = {
"site1": "xyzabc",
"site2": "defghi",
"site3": "jklmno",
"site4": "pqrstu",
"site5": ["id1", "vwxyza"],
"site6": ["id2", "bcdefg"],
"site7": "hijklm",
"site8": ["id3", "nopqrs"],
"site8": ["id4", "tuvwxy"],
"site9": ["id5", "zabcde"],
"site10": "fghijk",
"site11": ["id6", "lmnopq"],
"site12": "rstuvw"
};
results = pw[val1];
showResults(results);
}
其中每个项目位于不同的单独列中。 我试图用bs4来做这个并写下来:
id year_published title abstract mesh_terms
但是,这会引发有关将列表附加到URL的错误。我该如何解决这个问题。
答案 0 :(得分:1)
CSVfile = open('srData.csv')
fileReader = csv.reader(CSVfile)
Data = list(fileReader)
在这些行之后,Data
是一个列表列表。每个子列表是CSV的一行/一行。这意味着当你迭代它时:
for id in Data:
每次都会得到一份清单。更确切地说:
for row in Data:
id = row[0]
同样"http://www.ncbi.nlm.nih.gov/pubmed/" & id
肯定是错的。使用+
,而不是&
。