2017-06-14 49 views
0

你能帮我怎么从字典导入到json文件,我已经从网站获取所有标签,但仍然混淆保存所有标签。这是我的代码如何添加从美丽的词典元素到json文件

array= [] 
data = {} 
for divdata in soup.findAll('div', {"class": "ratio9_8 box_img fl mr10"}): 
    for div in divdata.findAll('div', {'class': 'img_con lqd'}): 
     for getatag in div.findAll('a', {'data-category': 'WP Kanal Berita'},href = True): 
      for getimgtag in getatag.findAll('img',title=True,src=True): 
       array.append(getimgtag['title']) 
       array.append(getimgtag['src']) 
       array.append(getatag['href']) 
       data['title'] = array[0] 
       data['image'] = array[1] 
       data['link'] = array[2] 
with open('data.json', 'w') as outfile: 
    json.dump(data, outfile) 
运行程序时

,我只是得到一个字典

{"title": "......", "image": ".....", "link": "...."} 

回答

0

把你的输出语句在你指定数据的循环。您正在覆盖每次迭代中的数据。如果你改变你的代码:

array= [] 
data = {} 
for divdata in soup.findAll('div', {"class": "ratio9_8 box_img fl mr10"}): 
    for div in divdata.findAll('div', {'class': 'img_con lqd'}): 
     for getatag in div.findAll('a', {'data-category': 'WP Kanal Berita'},href = True): 
      for getimgtag in getatag.findAll('img',title=True,src=True): 
       array.append(getimgtag['title']) 
       array.append(getimgtag['src']) 
       array.append(getatag['href']) 
       data['title'] = array[0] 
       data['image'] = array[1] 
       data['link'] = array[2] 
       with open('data.json', 'a') as outfile: 
        json.dump(data, outfile) 

它应该给你你想要的。

或者你可以这样做:

array= [] 
data = {} 
data_list = [] 
for divdata in soup.findAll('div', {"class": "ratio9_8 box_img fl mr10"}): 
    for div in divdata.findAll('div', {'class': 'img_con lqd'}): 
     for getatag in div.findAll('a', {'data-category': 'WP Kanal Berita'},href = True): 
      for getimgtag in getatag.findAll('img',title=True,src=True): 
       array.append(getimgtag['title']) 
       array.append(getimgtag['src']) 
       array.append(getatag['href']) 
       data['title'] = array[0] 
       data['image'] = array[1] 
       data['link'] = array[2] 
       data_list.append(data) 
data = {'data_list': data_list} 
with open('data.json', 'w') as outfile: 
    json.dump(data, outfile)