首页 > 解决方案 > python csv写入错误,同时将浮点值写入列

问题描述

我想将从 url 获取的值写入 csv 文件,该文件也有一些浮点值。下面的代码显示错误“发现浮动”。

import urllib2
import json
import csv

url = 'https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2016-10-01&endtime=2016-10-02'

i=0

csvfile = csv.writer(open('earthquakedet.csv', 'w'))
csvfile.writerow(["Latitude", "Longitude ","Title","Place","Mag"])

json_string = urllib2.urlopen(url).read()
j = json.loads(json_string)

names = [d['properties'] for d in j['features']]
names1 = [d['geometry'] for d in j['features']]

while i <= len(names):

    print names[i]['title']
    print names[i]['place']
    print names[i]['mag']
    print names1[i]['coordinates'][0]
    print names1[i]['coordinates'][1]
    i=i+1
   finalstr=float(names1[i]['coordinates'][0]) + float(names1[i]['coordinates'][1]) + names[i]['title'] + names[i]['place'] + names[i]['mag']

    csvfile.writerow(finalstr)


csvfile.close()

标签: python

解决方案


writerow接受要放在行上的值列表,而不是字符串。因此,与其自己连接这些值,不如将它们放在一个列表中以传递给writerow

# ...
i = i + 1

csvfile.writerow([names1[i]['coordinates'][0], names1[i]['coordinates'][1], names[i]['title'], names[i]['place'], names[i]['mag']])

推荐阅读