以csv
格式为例。csv
是一种简单的数据格式,可以用excel
打开。
我们新建一个sample.csv
文件,并写入这些数据:
num | name | age |
---|---|---|
1 | xiaoming | 16 |
2 | dawang | 21 |
我们可以使用pandas
模块读取csv
文件。pandas
的read_csv()
方法会读取csv
文件,并返回一个DataFrame
对象。
import pandas as pd
some_data_frame = pd.read_csv('sample.csv')
print(some_data_frame)
# num name age
# 0 1 xiaoming 16
# 1 2 dawang 21
DataFrame
对象可以调用很多方法,DataFrame
的to_dict()
方法可以把其中的数据转化为一个字典。
some_dict = some_data_frame.to_dict()
print(some_dict)
# {'num': {0: 1, 1: 2}, 'name': {0: 'xiaoming', 1: 'dawang'}, 'age': {0: 16, 1: 21}}
print(some_dict['name'][1])
# dawang
to_dict()
方法也可以携带参数,如'list'
,对字典的形式进行设置。
some_dict = some_data_frame.to_dict('list')
print(some_dict)
# {'num': [1, 2], 'name': ['xiaoming', 'dawang'], 'age': [16, 21]}
print(some_dict['name'][1])
# dawang
由此我们可以看到,列表list
其实可以看做是以索引为key
的字典dict
。
some_list = ['xiaoming', 'dawang']
some_dict = {0: 'xiaoming', 1: 'dawang'}
以json
格式为例。json
是一种网络数据交换的通用格式,跟python
中的dict
很相似。
我们也可以用pandas
读取本地的json
文件,但通常情况下,这些数据是通过网络api
获取的。
所以我们使用requests
对网络资源进行访问。requests
的get()
方法可以对一个地址进行访问,并返回一个Response
对象。
import requests
some_result = requests.get('https://api.bamo.tech/v0/cosmetic/mostUsedCF?top=5')
print(some_result)
# <Response [200]>
这个Response
对象通常可以通过调用json()
方法将其中的数据转化为一个字典。
some_json = some_result.json()
print(some_json)
# {'list': [{'_id': '水', 'count': 18123}, {'_id': '甘油', 'count': 13618}, {'_id': '丁二醇', 'count': 11435}, {'_id': '苯氧乙醇', 'count': 11200}, {'_id': '(日用)香精', 'count': 8855}]}
于是我们可以对该字典进行访问。
some_list = some_json['list']
print(some_list)
# [{'_id': '水', 'count': 18123}, {'_id': '甘油', 'count': 13618}, {'_id': '丁二醇', 'count': 11435}, {'_id': '苯氧乙醇', 'count': 11200}, {'_id': '(日用)香精', 'count': 8855}]
print(some_list[0])
# {'_id': '水', 'count': 18123}
以MongoDB
数据库为例。MongoDB
是。。算了算了别搞了。stair3再讲吧。