最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python解析json內(nèi)容存入數(shù)據(jù)庫(kù)方式

 更新時(shí)間:2025年05月24日 15:41:07   作者:知識(shí)倒進(jìn)我腦里  
這篇文章主要介紹了python解析json內(nèi)容存入數(shù)據(jù)庫(kù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

用python寫一個(gè)Github Trending API

由于才開始學(xué)習(xí)python,很多東西都不會(huì),花了好多天來(lái)把這個(gè)東西寫好,于是記錄如下。

要求

用requests庫(kù)抓取熱門倉(cāng)庫(kù)的信息,并存入數(shù)據(jù)庫(kù)

1.用到的庫(kù)

import requests
from sqlalchemy import desc, create_engine, Column, Integer, String, Text  # 降序、連接路徑、列、字符串、文本
from sqlalchemy.orm import scoped_session, sessionmaker  # 代理模式、數(shù)據(jù)庫(kù)連接的媒(手機(jī));engine號(hào)碼
from sqlalchemy.ext.declarative import declarative_base  # 聲明類映射類到表的關(guān)系

2.抓取url

url = 'http://132.232.132.144:8009/api?lang=python&since=daily'
response = requests.get(url)

3.解析內(nèi)容

response_dict = response.json()

內(nèi)容大致是這些:字典里面三個(gè)元素,第三個(gè)元素msg是一個(gè)列表,列表里面是各個(gè)熱門倉(cāng)庫(kù)的信息

我們要分析的就是msg里面的內(nèi)容

repositories = response_dict['msg']

遍歷列表字典

for res in repositories:
    language = res['language']
    user = res['user']
    stars = res['stars']
    repo = res['repo']
    forks = res['forks']
    about = res['about']
    link = res['link']
    new_stars = res['new_stars']
    avatars = res['avatars']
    api_info = {
        # 項(xiàng)目名稱
        'repo': repo,
        # 語(yǔ)言
        'language': language,
        # 倉(cāng)庫(kù)擁有者
        'user': user,
        # star數(shù)
        'stars': stars,
        # fork數(shù)
        'forks': forks,
        # 描述
        'about': res['about'],
        # 鏈接
        'link': res['link'],
        # 新增star
        'new_stars': res['new_stars'],
        # 頭像
        'avatars': res['avatars']

    }

4.連接數(shù)據(jù)庫(kù)

# 創(chuàng)建連接:'數(shù)據(jù)庫(kù)類型+數(shù)據(jù)庫(kù)驅(qū)動(dòng)名稱://用戶名:口令@機(jī)器地址:端口號(hào)/數(shù)據(jù)庫(kù)名'
engine = create_engine('mysql+pymysql://root:19981010@localhost:3306/oceanlay?charset=utf8mb4')

# 連接數(shù)據(jù)庫(kù)的路徑。
# “mysql+mysqldb”指定了使用 MySQL-Python 來(lái)連接,
# 聲明類 類到表的關(guān)系
Base = declarative_base()
# 創(chuàng)建數(shù)據(jù)表
Base.metadata.create_all(engine)

#定義python類

class Api(Base):
    __tablename__ = 'api'
    id = Column(Integer, primary_key=True)    #主鍵primary_key必須存在于某個(gè)字段中 
    repo = Column(String(128))  # repository name    #注意字段的數(shù)據(jù)類型與數(shù)據(jù)長(zhǎng)度,設(shè)置相對(duì)應(yīng)的類型
    language = Column(String(6))  # repository language
    user = Column(String(128))  # user
    stars = Column(String(128))
    forks = Column(String(128))
    link = Column(Text)
    new_stars = Column(String(128))

    def __repr__(self):
        return "<Api(id='%d',repo=%s,language=%s,user=%s,stars=%d,forks=%d,link=%s,new_stars=%s)>" \
               % (self.repo, self.language, self.user, self.stars, self.forks, self.link, self.new_stars,)
# 向表中插入數(shù)據(jù)
DBSession = sessionmaker(bind=engine)  #sessionmaker好比數(shù)據(jù)庫(kù)和內(nèi)容聯(lián)系的手機(jī),engine就是聯(lián)系號(hào)碼
session = DBSession()
# 寫入數(shù)據(jù)
session.add(
    Api(repo=api_info['repo'], language=api_info['language'], user=api_info['user'], stars=api_info['stars'],
        forks=api_info['forks'], link=api_info['link'], new_stars=api_info['new_stars'])
        )    #注意添加到哪一個(gè)表里面 就寫那個(gè)表

遍歷輸出:format函數(shù)

for res in repositories:
    print("倉(cāng)庫(kù)名:{repo}\n語(yǔ)言:{language}\n用戶:{user}\nstars:{stars}\nforks:{forks}\n項(xiàng)目描述about:{about}\n網(wǎng)址:{link}\n關(guān)注者頭像:{avatars}".format(repo=res['repo'], language=res['language'],  user=res['user'], stars=res['stars'],forks=res['forks'], about=res['about'], link=res['link'],avatars=res['avatars']))

Questions

遍歷列表字典時(shí),一直得到的只有第一個(gè)倉(cāng)庫(kù)的東西,后來(lái)將寫入數(shù)據(jù)的代碼放入遍歷循環(huán)中,ok!

連接數(shù)據(jù)庫(kù)時(shí),(還沒(méi)學(xué)過(guò)數(shù)據(jù)庫(kù)555),對(duì)應(yīng)的端口、用戶開始沒(méi)搞清楚,一直沒(méi)有連接成功

先建表再寫數(shù)據(jù),表內(nèi)字段也要建好才可以,不然寫不進(jìn)去的,要注意數(shù)據(jù)類型和數(shù)據(jù)長(zhǎng)度,不然會(huì)產(chǎn)生各種報(bào)錯(cuò)!

PS:由于熱門項(xiàng)目的url得到的是html內(nèi)容 雖然用beautifulsoup可以將內(nèi)容提取出來(lái) 但是我太菜了 我提到一半不知道怎么搞了,于是就用了博主直接提供的api。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python對(duì)html代碼進(jìn)行escape編碼的方法

    python對(duì)html代碼進(jìn)行escape編碼的方法

    這篇文章主要介紹了python對(duì)html代碼進(jìn)行escape編碼的方法,涉及Python中escape方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • php使用遞歸與迭代實(shí)現(xiàn)快速排序示例

    php使用遞歸與迭代實(shí)現(xiàn)快速排序示例

    這篇文章主要介紹了php使用遞歸與迭代實(shí)現(xiàn)快速排序的示例,大家參考使用吧
    2014-01-01
  • web.py在SAE中的Session問(wèn)題解決方法(使用mysql存儲(chǔ))

    web.py在SAE中的Session問(wèn)題解決方法(使用mysql存儲(chǔ))

    這篇文章主要介紹了web.py在SAE中的Session問(wèn)題解決方法(使用mysql存儲(chǔ)),本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • Python抽象類應(yīng)用詳情

    Python抽象類應(yīng)用詳情

    這篇文章主要介紹了Python抽象類應(yīng)用詳情,抽象類就是控制子類的方法的名稱,要求子類必須按照父類的要求的實(shí)現(xiàn)指定的方法,且方法名要和父類保持一致,下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • Python中HMAC加密算法的應(yīng)用

    Python中HMAC加密算法的應(yīng)用

    HMAC?算法可用于驗(yàn)證在應(yīng)用程序之間傳遞或存儲(chǔ)在潛在易受攻擊位置的信息的完整性,因此本文為大家整理了一些Python中HMAC加密算法的應(yīng)用,希望對(duì)大家有所幫助
    2023-05-05
  • python中的常量和變量代碼詳解

    python中的常量和變量代碼詳解

    這篇文章主要介紹了python中的常量和變量,通過(guò)實(shí)例代碼給大家介紹了局部和全局變量,需要的朋友參考下吧
    2018-07-07
  • Python面向?qū)ο缶幊讨^承與多態(tài)詳解

    Python面向?qū)ο缶幊讨^承與多態(tài)詳解

    這篇文章主要介紹了Python面向?qū)ο缶幊讨^承與多態(tài),結(jié)合實(shí)例形式詳細(xì)分析了Python面向?qū)ο缶幊讨欣^承與多態(tài)的概念、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-01-01
  • python字符串替換re.sub()方法解析

    python字符串替換re.sub()方法解析

    這篇文章主要介紹了python字符串替換re.sub()方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python使用matplotlib繪制折線圖

    python使用matplotlib繪制折線圖

    這篇文章主要為大家詳細(xì)介紹了python使用matplotlib繪制折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python range()函數(shù)取反序遍歷sequence的方法

    python range()函數(shù)取反序遍歷sequence的方法

    今天小編就為大家分享一篇python range()函數(shù)取反序遍歷sequence的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06

最新評(píng)論

万源市| 灵石县| 大石桥市| 原阳县| 扶风县| 哈密市| 吉首市| 旺苍县| 钦州市| 常宁市| 龙山县| 阜新| 武定县| 浪卡子县| 阿勒泰市| 大渡口区| 蓬莱市| 莱州市| 盘山县| 淳化县| 鹿泉市| 荔波县| 汝南县| 阿拉善盟| 景泰县| 封开县| 如皋市| 金溪县| 信宜市| 黔南| 政和县| 图木舒克市| 鹤庆县| 镇巴县| 司法| 安图县| 壤塘县| 灵寿县| 贡嘎县| 波密县| 芜湖县|