SQL查重和防止数据重复

今天从爬下来的医院数据创建一个新数据表时遇到了错误,这个也是预料中的,因为爬取的医院名称有的在括号内还有一个名称,我处理数据时把括号及里面的数据删除掉了,所以结果肯定有少量重复。解决办法是重新处理数据写入SQL,重新设置primary key

mysql> CREATE TABLE tier3_hospital (UNIQUE (hospital_name_new)) SELECT hospital_name_new,hospital_tier,Provinces,Cities,address,phone FROM hospital_list_table WHERE hospital_tier LIKE “%三 级%”;
ERROR 1062 (23000): Duplicate entry ‘吉林大学第三医院’ for key ‘hospital_name_new’
mysql> SELECT COUNT(*) as repetitions, hospital_name_new
-> FROM hospital_list_table
-> GROUP BY hospital_name_new
-> HAVING repetitions > 1;
+————-+———————————-+
| repetitions | hospital_name_new |
+————-+———————————-+
| 2 | 中德精神康复医院 |
| 2 | 兴义市人民医院 |
| 2 | 内蒙古胸科医院 |
| 2 | 南京市长江医院第四医院 |
| 2 | 南京长江医院第三医院 |
| 2 | 南京长江医院第二医院 |
| 2 | 吉林华侨医院 |
| 2 | 吉林大学第三医学院分院 |
| 2 | 吉林大学第三医院 |
| 2 | 呼伦贝尔盟第二人民医院 |
| 3 | 唐山华新纺织集团医院 |
| 2 | 四川省中医药研究院中医医院 |
| 2 | 太原市小店区亲贤医院 |
| 2 | 太原市煤炭气化公司职工医院 |
| 2 | 孝感市人民医院 |
| 2 | 安丘市白求恩医院 |
| 2 | 安丘市精神卫生中心 |
| 2 | 安溪县中医院 |
| 2 | 宜宾市康复医院 |
| 2 | 广州市番禺区岐山医院 |
| 2 | 广西亭凉医院 |
| 2 | 广西龙泉山医院 |
| 2 | 张家口市肺科医院 |
| 2 | 本溪钢铁公司胸科医院 |
| 2 | 梧州市里湖医院 |
| 2 | 武汉钢铁公司第二职工医院 |
| 2 | 武汉钢铁公司第二职工医院结核病院 |
| 2 | 河北省中医院 |
| 2 | 淮南朝阳医院 |
| 2 | 牡丹江市结核医院 |
| 2 | 苏州九龙医院 |
| 2 | 襄阳汽车轴承股份有限公司医院 |
| 2 | 镇江市烧伤医院 |
| 2 | 长治市商业医院 |
+————-+———————————-+
34 rows in set (0.04 sec)

下面这个情况就很尴尬了:

mysql> SELECT * FROM hospital_list_table
-> WHERE hospital_name_new=’吉林大学第三医院’;
+———————————————-+——————-+————————-+———–+——————+—————+——————————-+————–+——-+———+
| hospital_name | hospital_name_new | city | Provinces | Cities | hospital_tier | address | phone | email | website |
+———————————————-+——————-+————————-+———–+——————+—————+——————————-+————–+——-+———+
| 吉林大学第三医院 | 吉林大学第三医院 | 吉林省-延边朝鲜族自治州 | 吉林省 | 延边朝鲜族自治州 | 三级甲等 | 吉林省长春市二道区仙台大街2号 | 0431-4646331 | NULL | NULL |
| 吉林大学第三医院(中日联谊二部)(吉大三院) | 吉林大学第三医院 | 吉林省-长春市 | 吉林省 | 长春市 | 三级甲等 | 吉林省长春市仙台大街2号 | 0431-5656921 | NULL | NULL |
+———————————————-+——————-+————————-+———–+——————+—————+——————————-+————–+——-+———+
2 rows in set (0.02 sec)

http://huanyouchen.github.io/2018/05/22/mysql-error-1406-Data-too-long-for-column/

另外,mysql报错:1406, “Data too long for column”,可以:

在MySQL中设置这个:

mysql> SET @@global.sql_mode= ”;

pyecharts如何添加自定义图片

今天为了往pyecharts产生的html里添加微信二维码费了九牛二虎之力,主要是因为pyecharts的文档非常烂!

微信二维码
wechat QR
QR = myqr.run(
     words="https://geoseis.cn/CoV_en.html",          # 可以是字符串,也可以是网址(前面要加http(s)://)
     version=1,                              # 设置容错率为最高
     level='H',                              # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
     picture="C:/Users/xuzhen/Pictures/0.jpg",                           # 将二维码和图片合成
     colorized=True,                         # 彩色二维码
     contrast=1.0,                           #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
     brightness=1.0,                         #用来调节图片的亮度,其余用法和取值同上
     save_name="C:/Users/xuzhen/Pictures/python.gif",                     # 保存文件的名字,格式可以是jpg,png,bmp,gif
     save_dir=os.getcwd()                    #控制位置
 )
def image_base() -> Image:
     image = Image()
img_src = (
    "https://www.geoseis.cn/wp-content/gallery/pycharm/"
    "python.gif"
)
image.add(
    src=img_src,
    style_opts={"width": "200px", "height": "200px", "style": "margin-top: 10px"},
).set_global_opts(
    title_opts=ComponentTitleOpts(title="WeChat QR",title_style={"style": "font-size: 18px; font-weight:bold; color:red"},\
                                  subtitle="Scan to follow the realtime update!",subtitle_style={"style": "font-size: 12px; color:red"})
)
return image
  • 添加到page函数(重点是add(image_base(),如果没有这个括号是不行的,pyecharts没有这种实例需要自己琢磨它的用法):
page = (Page(page_title="2019-nCov")
        .add(world_map)
        .add(total_pie)
        .add(area_map)
        .add(area_heat_geo)
        .add(bar)
        .add(big_title)
        .add(times)
        .add(confirms)
        .add(confirms_people)
        .add(suspects)
        .add(suspects_people)
        .add(deads)
        .add(deads_people)
        .add(heals)
        .add(heals_people)
        .add(confirm_liquid)
        .add(suspect_liquid)
        .add(dead_liquid)
        .add(heal_liquid)
        .add(wc)
        .add(image_base())
        ).render("2019-nCov-RealTime.html")
  • 划重点,如何改变图片标题的字体(文档没有说明,需要阅读源码自己琢磨下),源码就在Options下的Charts_options.py:
title_opts=ComponentTitleOpts(title="WeChat QR",title_style={"style": "font-size: 18px; font-weight:bold; color:red"},\
subtitle="Scan to follow the realtime update!",subtitle_style={"style": "font-size: 12px; color:red"})
)

C:\Users\xuzhen\env\pyecharts\Lib\site-packages\pyecharts\options

最后的效果图:

肺炎疫情BI仪表盘