ValueError: dict contains fields not in fieldnames: ‘link‘ csv写入时错误

该博客讲述了在使用Python进行网络爬虫时遇到的问题。作者尝试从CSDN获取热搜列表,并将数据保存到CSV文件中。在执行过程中,由于编码错误导致`ValueError:dictcontainsfieldsnotinfieldnames: 'link'`。解决方案是检查写入CSV文件的headers设置,确保其为元组或可迭代对象。博客内容涵盖了HTTP请求、JSON解析和CSV文件操作等基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ValueError: dict contains fields not in fieldnames: ‘link’

import requests
import json
import csv
url = 'https://silkroad.csdn.net/api/v2/assemble/list/channel/pc_hot_word?channel_name=pc_hot_word&size=10&user_name=weixin_46700209&platform=pc&imei=10_19089823060-1575974967374-978317'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57','Cookie':'_uab_collina=161623964584445430900858; JSESSIONID=3A3E2650BB278B8CEE815BBD9BAE44A3; _jc_save_wfdc_flag=dc; BIGipServerotn=334496266.38945.0000; BIGipServerpool_passport=65274378.50215.0000; RAIL_EXPIRATION=1619602585205; RAIL_DEVICEID=V2sor_qHCTSnTHlOqvOUqnlL43oWhkS9-S2lAiBIkOR4CfbMEg3OiupqpaEBVtv87D3JPMvJaGZkPF4QNpgkrMCkSe6uXN56Zf_LVp-0TsNY1LgNFvmpLXwJ8PKwOc2r2u6sAmeW4MVpUMAnn5Pa5c3xbXEzgpgh; route=9036359bb8a8a461c164a04f8f50b252; _jc_save_fromStation=%u897F%u5B89%2CXAY; _jc_save_toStation=%u5EF6%u5B89%2CYWY; _jc_save_fromDate=2021-04-29; _jc_save_toDate=2021-04-25','cookie':'Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=6525*1*10_19089823060-1575974967374-978317!5744*1*weixin_46700209; uuid_tt_dd=10_19089823060-1575974967374-978317; p_uid=U010000; UN=weixin_46700209; UserName=weixin_46700209; UserInfo=149a43ece50c4fbe8b540cb303874d85; UserToken=149a43ece50c4fbe8b540cb303874d85; UserNick=weixin_46700209; AU=C5D; BT=1610862729390; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22weixin_46700209%22%2C%22scope%22%3A1%7D%7D; __gads=ID=64c6f0bd72c9053d-229e75800ec400b1:T=1602734373:S=ALNI_Ma8SkpYJxyrgu3S0tXG_nJTJfWdOw; dc_sid=3062fbeb9284b8651bf6f615a8bb10d1; c_first_page=https%3A//www.csdn.net/; c_first_ref=default; c_segment=13; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1619338924,1619433187,1619527258,1620198599; log_Id_click=694; dc_session_id=10_1620217300190.880458; c_ref=https%3A//mp.csdn.net/console/article; c_page_id=default; announcement-new=%7B%22isLogin%22%3Atrue%2C%22announcementUrl%22%3A%22https%3A%2F%2Fblog.csdn.net%2Fblogdevteam%2Farticle%2Fdetails%2F112280974%3Futm_source%3Dgonggao_0107%22%2C%22announcementCount%22%3A0%2C%22announcementExpire%22%3A3600000%7D; c_pref=https%3A//mp.csdn.net/console/article; dc_tos=qsmvoh; log_Id_pv=811; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1620217316; log_Id_view=1086'}

res = requests.get(url,headers=headers)

# rem = res.content.decode('utf-8')
rem = res.text
a = json.loads(rem)
b = a['data']['items']

list1 = []
for i in b :
    d = {}
    d['link'] = i['productId']
    # list1.append(i['productId'])
    list1.append(d)

# print(list1)

headers = ('link')
with open('热搜2.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.DictWriter(f,headers)
    writer.writeheader()
    writer.writerows(list1)




  • 我们用写入表头时,即(headers)应该写成(headers,)要么是可迭代的,要么就是元组,我们少加入了个逗号就不是元组了,就变成了字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最低调的奢华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值