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

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,)要么是可迭代的,要么就是元组,我们少加入了个逗号就不是元组了,就变成了字符串
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误是由于在使用csv.DictWriter,传入的字典中包含了不在fieldnames中的字段所引起的。为了解决这个问题,你可以按照以下步骤进行操作: 1. 确保你的字典中的键与fieldnames中的字段名一致。检查一下你的字典中是否包含了不在fieldnames中的字段。 2. 如果你的字典中包含了不在fieldnames中的字段,你可以选择删除这些字段或者将它们添加到fieldnames中。 3. 如果你选择删除这些字段,你可以使用字典的pop()方法来删除不需要的字段。 4. 如果你选择将这些字段添加到fieldnames中,你可以在创建DictWriter对象将这些字段名添加到fieldnames列表中。 下面是一个示例代码,演示了如何解决这个错误: ```python import csv data = [ {'name': 'John', 'age': 25, 'city': 'New York'}, {'name': 'Alice', 'age': 30, 'city': 'Los Angeles'}, {'name': 'Bob', 'age': 35, 'city': 'Chicago'} ] fieldnames = ['name', 'age', 'city'] with open('data.csv', 'w', newline='') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for row in data: writer.writerow(row) ``` 这段代码中,我们创建了一个包含name、age和city字段的字典列表data。然后,我们创建了一个fieldnames列表,其中包含了与字典中的字段名相对应的字段名。接下来,我们使用csv.DictWriter创建了一个写入器writer,并将fieldnames传递给它。最后,我们使用writer的writeheader()方法写入表头,并使用writer的writerow()方法逐行写入数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

最低调的奢华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值