编写一个函数,接受CSV文件的文件名(字符串),其中包含有关学生姓名及其四门课程成绩的信息,并返回信息字典.字典的键应该是学生的名字,值应该是他们成绩的浮点数列表.例如,如果文件的内容如下所示:
Mark,90,93,60,90
Abigail,84,50,72,75
Frank,46,83,53,79
Yohaan,47,77,74,96
Run Code Online (Sandbox Code Playgroud)
那么你的函数应该返回一个字典,如:
out_dict = {'Frank': [46.0, 83.0, 53.0, 79.0],
'Mark': [90.0, 93.0, 60.0, 90.0],
'Yohaan': [47.0, 77.0, 74.0, 96.0],
'Abigail': [84.0, 50.0, 72.0, 75.0]}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
def dict_from_file (file_name):
file_pointer = open(file_name, 'r')
data = file_pointer.readlines()
print (data)
output_dict = {}
for line in data:
file_pointer.close()
return (output_dict)
#Main Program
file_name = input("Enter the exact file name with its extension (.i.e., .txt): ")
result = dict_from_file (file_name)
print (result)
Run Code Online (Sandbox Code Playgroud)
如您所见,for循环中缺少语句.问题是我找不到任何逻辑来首先从文件中获取输入并将其粘贴到字典中.如果我计划提取每一行,我将如何将其添加到字典中,其中名称为键,四个数字为值?
我正在尝试使用Python请求从SimilarWeb API获取数据,如下所示:
import requests
MY_API_KEY = 'XXXXXXXXXXXXXXXXXX'
API_URL = "https://api.similarweb.com/v1/website/{site}/" \
"total-traffic-and-engagement/visits?api_key={api_key}" \
"&start_date={start_date}" \
"&end_date={end_date}" \
"&main_domain_only=false" \
"&granularity={granularity}".format(
site='cnn.com',
api_key=MY_API_KEY,
start_date="2017-09",
end_date="2017-10",
granularity="monthly"
)
response = requests.get(API_URL)
print response.json()
Run Code Online (Sandbox Code Playgroud)
尽可能遵循他们自己网站上的 simpleweb 示例(此处)。只是日期不同而已。
但是,我收到一个 json 错误,指出 json 中的“日期不在范围内”:
{
u'meta': {
u'status': u'Error',
u'error_code': 101,
u'error_message': u'Dates not in range', <--- error msg
u'request': {
u'domain': u'cnn.com',
u'end_date': u'2017-10-31',
u'format': None,
u'country': u'world',
u'main_domain_only': False,
u'limit': None,
u'granularity': u'Monthly',
u'start_date': u'2017-09-01'
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的日期(包括示例中的日期 - …