我尝试使用下面的代码从多个URL中提取json数据,但它会引发标题中提到的错误。 但是,当只使用一个URL时,代码可以正常工作。
感谢任何帮助。
import urllib, json, time, csv
arr_ids = ['611', '1564', '1565', '1561', '712', '779', '118', '707', '706', '711', '155', '713', '710', '607', '609', '592', '739', '589', '608', '606', '569', '570', '612', '587', '567', '591', '564', '563', '566', '565', '568', '588', '1561', '1387', '1388', '1575', '1567', '1577', '1568', '152', '154', '153', '1203', '1204', '708', '709', '1576', '780', '781', '1573', '1574', '782', '121', '120', '1562', '1385', '1386', '1563']
convert_list = [['date_and_time','val']]
for arr_id in arr_ids:
url = "http://xxxyyyyx.com/predict/dataloc.php?param=rv&dfrm=01/24/2017&dto=01/25/2017&numloc=1&data24=0&locs[]="+arr_id
response = urllib.urlopen(url)
data = json.loads(response.read())
for key in data:
station_name = key
json_data = data[station_name]
for json in json_data:
epoch_time = json[0]/1000
formatted = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(epoch_time))
val = json[1]
new_list = [formatted,val]
convert_list.append(new_list)
with open(station_name+".csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(convert_list)
抛出错误:
Traceback(最近一次调用最后一次):文件 " C:\ Users \ acer \ Downloads \ getwl_rv \ json2csv \ json2csv.py",第9行,在 data = json.loads(response.read())AttributeError:' list'对象没有属性'加载'
答案 0 :(得分:3)
for json in json_data:
在这一行中,您已覆盖json
模块名称。
答案 1 :(得分:2)
您已覆盖导入的模块
for json in json_data:
尽量不按模块或内置函数命名变量