python - 想要从 csv 文件创建键值对列表但无法
问题描述
我想用 /getService 路由的输出创建一个键值对列表。
我能够从 csv 文件 vet_service_locations 中过滤我想要的数据(郊区和服务),但希望将其作为键值对。关键是郊区,服务和价值将是相关的输出。
我是初学者,尝试了不同的方法,但似乎没有任何效果。
from bottle import html_quote, route, run, template, response, request
import petl as etl
from json import dumps
import csv
output = []
reading_file = etl.fromcsv('vet_service_locations.csv')
print(reading_file)
@route('/getServices')
def details():
postcode = request.query.postcode
print(postcode)
for row in reading_file:
if row[2] == postcode:
output.append(row[1])
output.append(row[4])
print(output)
run(host='localhost', port=3000, debug=True)
Vet_service_location.csv 数据图像在此链接中
我得到的输出
[('Adelaide', 'Small_Animal'), ('Adelaide', 'Oncology'), ('Adelaide', 'Surgery'), ('Adelaide', 'Annual_Checkup'), ('Adelaide', 'Wildlife')]
我想要的输出
suburb, values
[('Adelaide', 'Small_Animal'),
('Adelaide', 'Oncology'),
('Adelaide', 'Surgery'),
('Adelaide', 'Annual_Checkup'),
('Adelaide', 'Wildlife')]
所以,有点像表格,与 vet_service_locations.csv 的结构相同。
解决方案
如果你想output
成为一个以郊区为键、服务为值的键值对列表,那么你应该替换这些行
output.append(row[1])
output.append(row[4])
就output.append((row[1], row[4]))
这样,这output
是一个元组列表。
或者,您可能想制作output
一本字典。为此,请将您的声明output = []
替换output = {}
为然后替换行
output.append(row[1])
output.append(row[4])
与output[row[1]] = row[4]
.
推荐阅读
- r - 我是否需要在 Imports 和 LinkingTo 中指定 Rcpp 以避免 Makevars 文件?
- google-apps-script - 使用 Google Apps 脚本打印 Datastudio
- python - tkinter 单选按钮文本换行
- android - 将高程添加到 BottomNavigationView
- javascript - jQuery按钮的传播问题
- c# - 模拟接口方法,以便实现该接口的所有类都使用该实现
- python - Python - 使情节更加明显
- python - 如何在python中同时检查整数和范围?
- sql - 将 Group By 与 JSON_TABLE 一起使用时 Oracle 中的意外行为
- kubernetes - Google Kubernetes 私有集群:Google Compute Engine:超过了每个子网支持的最大辅助范围数