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

python腳本編輯oss文件的實(shí)現(xiàn)示例

 更新時(shí)間:2024年05月16日 08:27:11   作者:yunson_Liu  
本文主要介紹了python腳本編輯oss文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、安裝oss2庫(kù)

root@ubuntu:~# pip3 install oss2
Collecting oss2
  Downloading oss2-2.18.5.tar.gz (283 kB)
     |████████████████████████████████| 283 kB 6.9 MB/s 
Collecting aliyun-python-sdk-core>=2.13.12
  Downloading aliyun-python-sdk-core-2.15.1.tar.gz (443 kB)
     |████████████████████████████████| 443 kB 67.8 MB/s 
Collecting aliyun-python-sdk-kms>=2.4.1
  Downloading aliyun_python_sdk_kms-2.16.3-py2.py3-none-any.whl (98 kB)
     |████████████████████████████████| 98 kB 8.3 MB/s 
Collecting crcmod>=1.7
  Downloading crcmod-1.7.tar.gz (89 kB)
     |████████████████████████████████| 89 kB 14.3 MB/s 
Collecting pycryptodome>=3.4.7
  Downloading pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
     |████████████████████████████████| 2.1 MB 7.0 MB/s 
Requirement already satisfied: requests!=2.9.0 in /usr/lib/python3/dist-packages (from oss2) (2.22.0)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from oss2) (1.14.0)
Requirement already satisfied: cryptography>=2.6.0 in /usr/lib/python3/dist-packages (from aliyun-python-sdk-core>=2.13.12->oss2) (2.8)
Collecting jmespath<1.0.0,>=0.9.3
  Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Building wheels for collected packages: oss2, aliyun-python-sdk-core, crcmod
  Building wheel for oss2 (setup.py) ... done
  Created wheel for oss2: filename=oss2-2.18.5-py3-none-any.whl size=118170 sha256=cd8f24bb98e8449af56d9df9e826cce691d0527e53420f9c2f14a5b85b059d0c
  Stored in directory: /root/.cache/pip/wheels/b6/af/6a/36f940ed11f11b5e1002f94160a82c3dc35e8a357cedc02bb7
  Building wheel for aliyun-python-sdk-core (setup.py) ... done
  Created wheel for aliyun-python-sdk-core: filename=aliyun_python_sdk_core-2.15.1-py3-none-any.whl size=535318 sha256=83c40a77e365ad83d4b74b43e757c6cea78628e8054706e48ae424ed8ddf7b69
  Stored in directory: /root/.cache/pip/wheels/64/af/7e/b3ec025852e53d69463404a2b281d4587d45ee710cd45d0f38
  Building wheel for crcmod (setup.py) ... done
  Created wheel for crcmod: filename=crcmod-1.7-cp38-cp38-linux_x86_64.whl size=35994 sha256=9fc029c468fe548c4862be3ab4783e1d17b2ba52b72aef537d520b42f1c0a0ad
  Stored in directory: /root/.cache/pip/wheels/ca/5a/02/f3acf982a026f3319fb3e798a8dca2d48fafee7761788562e9
Successfully built oss2 aliyun-python-sdk-core crcmod
Installing collected packages: jmespath, aliyun-python-sdk-core, aliyun-python-sdk-kms, crcmod, pycryptodome, oss2
Successfully installed aliyun-python-sdk-core-2.15.1 aliyun-python-sdk-kms-2.16.3 crcmod-1.7 jmespath-0.10.0 oss2-2.18.5 pycryptodome-3.20.0

2、編寫腳本

1)更改后將文件更美觀的輸出

參數(shù)indent=4:以將 JSON 數(shù)據(jù)格式化為具有縮進(jìn)的形式,使其更易于閱讀。
參數(shù)ensure_ascii=False:以確保中文字符能夠正確地輸出

腳本json格式化輸出

import json
import oss2

def update_oss_json_value(access_key_id, access_key_secret, endpoint, bucket_name, file_path, key_value_map):
    # 創(chuàng)建 OSS 客戶端
    auth = oss2.Auth(access_key_id, access_key_secret)
    bucket = oss2.Bucket(auth, endpoint, bucket_name)

    # 讀取文件內(nèi)容
    content = bucket.get_object(file_path).read()

    # 解析 JSON
    data = json.loads(content)

    # 修改指定 key 的值
    for key, value in key_value_map.items():
        if key in data:
            data[key] = value

    # 將修改后的 JSON 格式化為美觀的字符串
    new_content = json.dumps(data, indent=4, ensure_ascii=False)

    # 上傳修改后的文件內(nèi)容
    bucket.put_object(object_key, new_content.encode('utf-8'))

    print("File content has been updated.")

# 要修改的 OSS 文件路徑
file_path = 'test/domain_bak.json'

# 指定正確的 endpoint
endpoint = 'http://oss-cn-hongkong.aliyuncs.com'

# 要修改的 key-value 映射
key_value_map = {
    'superSign1': 'https://uykkr.abc.com/c/gulorex6',
    'superSign2': 'https://dspcs.abc.com/c/xqjqujc2'
}

# 調(diào)用函數(shù)更新 OSS 文件內(nèi)容
update_oss_json_value('XXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXX', endpoint, 'test', file_path, key_value_map)

執(zhí)行后會(huì)將json文件格式化輸出,如有不是很規(guī)范的都會(huì)更加美觀的顯示

2)保持每個(gè)鍵值對(duì)都占據(jù)一行,并在開頭空四格

import json
import oss2

def update_oss_json_value(access_key_id, access_key_secret, endpoint, bucket_name, file_path, key_value_map):
    # 創(chuàng)建 OSS 客戶端
    auth = oss2.Auth(access_key_id, access_key_secret)
    bucket = oss2.Bucket(auth, endpoint, bucket_name)

    # 讀取文件內(nèi)容
    content = bucket.get_object(file_path).read()

    # 解析 JSON
    data = json.loads(content)

    # 修改指定 key 的值
    for key, value in key_value_map.items():
        if key in data:
            data[key] = value

    # 將修改后的 JSON 轉(zhuǎn)換為字符串,保持每個(gè)鍵值對(duì)都占據(jù)一行,并在開頭空四格
    new_content = ',\n'.join([f'    "{k}": "{v}"' for k, v in data.items()])

    # 添加大括號(hào),保持 JSON 格式
    new_content = '{\n' + new_content + '\n}'

    # 上傳修改后的文件內(nèi)容
    bucket.put_object(object_key, new_content.encode('utf-8'))

    print("File content has been updated.")

# 要修改的 OSS 文件路徑
file_path = 'test/domain_bak.json'

# 指定正確的 endpoint
endpoint = 'http://oss-cn-hongkong.aliyuncs.com'

# 要修改的 key-value 映射
key_value_map = {
    'superSign1': 'https://uykkr.abc.com/c/gulorex6',
    'superSign2': 'https://dspcs.abc.com/c/xqjqujc2'
}

# 調(diào)用函數(shù)更新 OSS 文件內(nèi)容
update_oss_json_value('XXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXX', endpoint, 'test', file_path, key_value_map)

3、通過位置參數(shù)進(jìn)行新增鍵值對(duì)

import json
import oss2
import argparse

def update_oss_json_value(access_key_id, access_key_secret, endpoint, bucket_name, file_path, *superSigns):
    # 創(chuàng)建 OSS 客戶端
    auth = oss2.Auth(access_key_id, access_key_secret)
    bucket = oss2.Bucket(auth, endpoint, bucket_name)

    # 讀取文件內(nèi)容
    content = bucket.get_object(file_path).read()

    # 解析 JSON
    data = json.loads(content)

    # 生成 key-value 映射
    key_value_map = {}
    for i, superSign in enumerate(superSigns, start=1):
        key = f'superSign{i}'
        key_value_map[key] = superSign

    # 修改指定 key 的值
    for key, value in key_value_map.items():
        #if key in data:
        data[key] = value
        print(key,value)

    # 將修改后的 JSON 轉(zhuǎn)換為字符串,保持每個(gè)鍵值對(duì)都占據(jù)一行,并在開頭空四格
    new_content = ',\n'.join([f'    "{k}": "{v}"' for k, v in data.items()])

    # 添加大括號(hào),保持 JSON 格式
    new_content = '{\n' + new_content + '\n}'

    # 打印更新后的鍵值對(duì)
    for key, value in data.items():
        print(f"{key}: {value}")
             
    # 上傳修改后的文件內(nèi)容
    bucket.put_object(file_path, new_content.encode('utf-8'))

    print("File content has been updated.")

if __name__ == "__main__":
    # 創(chuàng)建參數(shù)解析器
    parser = argparse.ArgumentParser(description="Update OSS JSON file")

    # 添加命令行參數(shù)
    #parser.add_argument("access_key_id", type=str, help="Access Key ID")
    #parser.add_argument("access_key_secret", type=str, help="Access Key Secret")
    #parser.add_argument("endpoint", type=str, help="OSS Endpoint")
    parser.add_argument("bucket_name", type=str, help="Bucket Name")
    parser.add_argument("file_path", type=str, help="Object Key")
    parser.add_argument("superSigns", nargs='+', type=str, help="Values for superSigns")

    # 解析命令行參數(shù)
    args = parser.parse_args()

    # 調(diào)用函數(shù)更新 OSS 文件內(nèi)容
    update_oss_json_value('XXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXX', 'http://oss-cn-hongkong.aliyuncs.com', args.bucket_name, args.file_path, *args.superSigns)

執(zhí)行

root@ubuntu:~# python3 kong.py 'test-prod' 'test/domain_bak.json' 'https://uykkr.abc.com/api/c/gulorex6' 'https://dspcs.abc.com/api/c/xqjqujc2'
superSign1 https://uykkr.abc.com/api/c/gulorex6
superSign2 https://dspcs.abc.com/api/c/xqjqujc2
。。。。。文本json。。。。。
File content has been updated. 
root@ubuntu:~# python3 kong.py 'test-prod' 'test/domain_bak.json' 'https://uykkr.abc.com/api/c/gulorex6' 'https://dspcs.abc.com/api/c/xqjqujc2' 'https://dspcs.abc.com/api/c/acrik5'
superSign1 https://uykkr.abc.com/api/c/gulorex6
superSign2 https://dspcs.abc.com/api/c/xqjqujc2
superSign3 https://dspcs.abc.com/api/c/acrik5
。。。。。文本json。。。。。
File content has been updated.
root@ubuntu:~# python3 kong.py 'test-prod' 'test/domain_bak.json' 'https://uykkr.abc.com/api/c/gulorex6' 'https://dspcs.abc.com/api/c/xqjqujc2' 'https://dspcs.abc.com/api/c/acrik5' 'https://dspcs.abc.com/api/c/acrik5'
superSign1 https://uykkr.abc.com/api/c/gulorex6
superSign2 https://dspcs.abc.com/api/c/xqjqujc2
superSign3 https://dspcs.abc.com/api/c/acrik5
superSign4 https://dspcs.abc.com/api/c/acrik5
。。。。。文本json。。。。。
File content has been updated.

到此這篇關(guān)于python腳本編輯oss文件的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)python 編輯oss文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python 讀寫 Matlab Mat 格式數(shù)據(jù)的操作

    Python 讀寫 Matlab Mat 格式數(shù)據(jù)的操作

    這篇文章主要介紹了Python 讀寫 Matlab Mat 格式數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-05-05
  • 基于python的ini配置文件操作工具類

    基于python的ini配置文件操作工具類

    這篇文章主要為大家詳細(xì)介紹了基于python的ini配置文件操作工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python實(shí)例練習(xí)水仙花數(shù)問題講解

    Python實(shí)例練習(xí)水仙花數(shù)問題講解

    這篇文章介紹了Python找水仙花數(shù)從分析到實(shí)現(xiàn)的過程,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python 求向量的余弦值操作

    Python 求向量的余弦值操作

    這篇文章主要介紹了Python 求向量的余弦值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2021-03-03
  • 使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法

    今天小編就為大家分享一篇使用Python的Dataframe取兩列時(shí)間值相差一年的所有行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-07-07
  • 在Python的Django框架中顯示對(duì)象子集的方法

    在Python的Django框架中顯示對(duì)象子集的方法

    這篇文章主要介紹了在Python的Django框架中顯示對(duì)象子集的方法,即queryset的參數(shù)的使用相關(guān),需要的朋友可以參考下
    2015-07-07
  • 利用python3 的pygame模塊實(shí)現(xiàn)塔防游戲

    利用python3 的pygame模塊實(shí)現(xiàn)塔防游戲

    這篇文章主要介紹了利用python3 的pygame模塊實(shí)現(xiàn)塔防游戲,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Django自帶的用戶驗(yàn)證系統(tǒng)實(shí)現(xiàn)

    Django自帶的用戶驗(yàn)證系統(tǒng)實(shí)現(xiàn)

    這篇文章主要介紹了Django自帶的用戶驗(yàn)證系統(tǒng)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python?copy()與deepcopy()方法之間有什么區(qū)別

    Python?copy()與deepcopy()方法之間有什么區(qū)別

    這篇文章主要介紹了Python中的copy()和deepcopy(),下面詳細(xì)介紹該內(nèi)容并附上詳細(xì)代碼,需要的朋友可以參考一下文章的具體內(nèi)容,希望對(duì)你有所幫助
    2022-10-10
  • opencv python 對(duì)指針儀表讀數(shù)識(shí)別的兩種方式

    opencv python 對(duì)指針儀表讀數(shù)識(shí)別的兩種方式

    這篇文章主要介紹了opencv python 對(duì)指針儀表讀數(shù)識(shí)別的兩種方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論

嵊泗县| 新宾| 淄博市| 八宿县| 若尔盖县| 津南区| 石屏县| 平阴县| 温州市| 上林县| 昌平区| 呼玛县| 古浪县| 南京市| 贵港市| 蓝田县| 乌鲁木齐市| 格尔木市| 齐河县| 雷山县| 永寿县| 花莲市| 通辽市| 梅河口市| 舒城县| 浏阳市| 罗江县| 涪陵区| 双流县| 新乡县| 望谟县| 察隅县| 安康市| 西乡县| 延川县| 景宁| 大关县| 桐柏县| 望奎县| 昭苏县| 米脂县|