Python 读写json文件
本文旨在记录将读入url后的json文件转为python格式从而进行分析
- 读入url,保存json文件
import urllib, json
response = urllib.urlopen(url)
data = json.loads(response.read())
- json切片
def dict_slice(adict, start, end):
keys = adict.keys()
dict_slice = {}
for k in keys[start:end]:
dict_slice[k] = adict[k]
return dict_slice
result = dict_slice(data, 1, 2)
result = result[u'rows'][0][u'elements'][0][u'distance'][u'text']#取出json内部分内容
- json格式转为python格式
distance = json.dumps(result)#转为python格式
实例代码
该代码主要实现计算两个城市之间的距离,利用google distance matrix的api,更多应用示例见以下链接:
https://developers.google.com/maps/documentation/distance-matrix/start
该代码根据读取xls文件中的相应城市地址,从而进行计算并输出所有的距离
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Sun May 21 22:49:59 2017
@author: chenjingwen
"""
import xlrd
import numpy as np
import urllib, json
import csv
def dict_slice(adict, start, end):
keys = adict.keys()
dict_slice = {}
for k in keys[start:end]:
dict_slice[k] = adict[k]
return dict_slice
filed = xlrd.open_workbook('Distance1.xls') # 打开xls文件
table = filed.sheets()[0]
nrows = table.nrows
destination=[]
originations = []
#将table中第一行的数据读取并添加到data_list中
for i in range(nrows):
dest = table.row_values(i)[0].encode("utf-8")
origin = table.row_values(i)[1].encode("utf-8")
destination.append(dest)
originations.append(origin)
website0 = 'https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins='
#origins = 'Washington,DC'
website1 = '&destinations='
#destination = 'New,York,City,NY'
website2 = '&key=AIzaSyD1SqEGEsCe3iaktwXALoSDx3b4JiDA0Dw'#输入api
result = []
for i in range(444,nrows):
url = website0 + originations[i] + website1 + destination[i] + website2
response = urllib.urlopen(url)
data = json.loads(response.read())
res = dict_slice(data, 1, 2)
res = res[u'rows'][0][u'elements'][0][u'distance'][u'text']
distance = json.dumps(res)
result.append([i,distance])
with open('destination_result.csv','w') as f:
#this will save the results of all frames,you can just uncomment it
f_csv = csv.writer(f)
f_csv.writerows(result)