2017-01-26 93 views
-1

我想从下面的代码中提取多个URL的json数据,但它会引发标题中提到的错误。 但是,如果只使用一个URL,代码将起作用。AttributeError:'list'对象没有属性'加载'

任何帮助表示赞赏。

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 (most recent call last): File "C:\Users\acer\Downloads\getwl_rv\json2csv\json2csv.py", line 9, in data = json.loads(response.read()) AttributeError: 'list' object has no attribute 'loads'

回答

3

for json in json_data:

在这一行,你已经覆盖json模块名称。

+0

什么...愚蠢的错误。谢谢! –

2

你重写模块您导入

for json in json_data: 

尽量不要通过命名您的模块变量或内置函数