json文件的读写操作及乱码(包含农业数据爬取)

写文件

import json
import codecs#解码汉字
import csv
data=[{
    "问题": "怎样进行小麦病害叶锈病的农业防治?",
    "方案1:": "农业防治种植抗病品种。增施磷、钾肥,做到氮磷钾合理搭配,增强小麦长势。施用氮肥不要过多、过迟,避免贪青晚熟。麦田要合理灌水,防止大水漫灌,降低田间湿度。南北行种植,提高通风透光能力。"
},
{
    "问题": "小麦病害叶锈病有何防治方法?",
    "方案1:": "(1)药剂拌种。小麦播前选用种子量0.2%的3%苯醚甲环唑悬浮种衣剂,或种子量0.06%的6%戊唑醇悬浮种衣剂拌种包衣,兼治小麦腥黑穗病、白粉病、锈病等病害。(2)喷药防治。病叶率达10%以上时,喷施20%三唑酮乳油1000倍液,或12.5%烯唑醇可湿性粉剂2000倍液,重病田块间隔10-15天连防两次。喷药时加入“天达2116”粮食专用型1000倍液可显著提高防病、抗逆效果。(3)重视栽培防病措施的应用。选用抗病丰产良种;适期晚播,减少秋苗发病程度,降低病菌越冬基数;小麦收获后及时翻耕灭茬,自生麦苗,消灭当地越夏菌源;善管肥水,提高根系活力,增强植株抗耐病力。"
},
{
    "问题": "小麦病害白粉病有何防治方法?",
    "方案1:": "防治措施一是选用抗病品种。二是适当控制群体、合理肥水促控、健株栽培、提高植株抗病力。三是药剂防治:用粉锈宁按种子量0.03%的有效成分拌种,可有效控制苗期白粉病,并可兼治锈病、纹枯病和黑穗病等病害;或每666.7米2用粉锈宁有效成分7~10克,对水喷雾防治。"
},
{
    "问题": "怎样进行小麦病害白粉病的生物防治?",
    "方案1:": "施用酵素菌沤制的堆肥或腐熟有机肥,采用配方施肥技术,适当增施磷钾肥,根据品种特性和地力合理密植。南方麦区雨后及时排水,防止湿气滞留。北方麦区适时浇水,使寄主增强抗病力。"
}]
#以二进制写入,w覆盖,a继续写入
with open("data二进制.json","w") as fp:
    json.dump(data,fp,indent=4,separators=[",",":"])

#以汉字写入
with codecs.open("data汉字.json", 'a', 'utf-8') as fp:
    json.dump(data, fp, ensure_ascii=False,indent=4,separators=[",",":"])

结果:
在这里插入图片描述
在这里插入图片描述
写列表

#写列表
data=["学校","科目","年份","批次","类型","最低分","最低位次","省控线"]
with open('newfile.csv', 'a', newline='', encoding='utf-8-sig') as fp:
    writer = csv.writer(fp)
    writer.writerow(data)

读文件

import json
#读取二进制json
with open("data二进制.json") as fp:
    datas=json.load(fp)
for data in datas:
    print(data)

#读取汉字json
with open("data汉字.json",encoding="utf-8-sig") as fp:
    datas=json.load(fp)
for data in datas:
    print(data)
from lxml import etree
from pyquery import PyQuery as pq
import time
import json
import requests



headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
     }
lo=[]

for i in range(1,4097):#4096
    url='https://zjzx.cnki.net/BBS/BBSList?currentPageNo={}&code=101001002&codename=玉米'.format(i)
    

    page_text=requests.get(url=url,headers=headers).text
    tree=etree.HTML(page_text)
    div_list0=tree.xpath('//*[@id="bbsList"]//tr')
    for div in div_list0:
        li={}
        title=div.xpath('./td/a/@href')
        
        if len(title)!=0:
            title="https://zjzx.cnki.net"+title[0]
            li["URL"]=title
            
        title=div.xpath('./td/a/@title')
        if len(title)!=0:
            
            li["问题"]=title[0]
            
        title=div.xpath('./td[7]/text()')
        if len(title)!=0:
            
            li["回答数"]=int(title[-1][-2]+title[-1][-1])
            if li["回答数"]!=0:
                
                lo.append(li)
    print("第页{}成功".format(i))
json_str=json.dumps(lo,ensure_ascii=False,indent=4)
   
    
with open('corn.txt','a',encoding='utf-8') as f:
        f.write(json_str)
        f.write('\n')
        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

聆听我的召唤,菜鸟进化

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

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

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

打赏作者

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

抵扣说明:

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

余额充值