Если вы когда-либо пытались развернуть огромный проект NFT, вы осознали важность наличия надежного сценария для обновления метаданных, тем более что ваши метаданные не будут полными, пока вы не зафиксируете папку изображения в IPFS и не получите хеш для базового URI. Но что делать, если вы хотите изменить метаданные: возможно, добавить новые категории или удалить старые? У меня есть простой скрипт, для которого требуется только Python.

import os

В вашем файле .py все, что вам нужно, это импортировать os.

files = os.listdir('/Users/your/file/location')

Функция listdir создает массив. Итак, теперь нам просто нужно пройтись по массиву с помощью цикла for.

for x in files:
    with open('/Users/your/file/location/'+x, 'rb') as file :
        filedata = file.read()

«rb» означает «чтение байтов», что необходимо для чтения строк в файле JSON.

# Replace the target string
    filedata = filedata.replace(bytes('REPLACE-THIS-WITH-YOUR-URL', encoding='utf-8'), bytes('ipfs://YOUR_IPFS_HASH', encoding='utf-8'))

Python имеет встроенную функцию замены, где первый параметр — это ввод, который нужно найти и заменить вторым вводом. Вам нужно преобразовать строку в байты и указать кодировку.

with open('/Users/your/file/location/'+x, 'wb') as file:
        file.write(filedata)

Снова откройте файл и запишите в него изменения.

Полный код:

import os
files = os.listdir('/Users/your/file/location')

for x in files:
    with open('/Users/your/file/location/'+x, 'rb') as file :
        filedata = file.read()
        
    # Replace the target string
    filedata = filedata.replace(bytes('REPLACE-THIS-WITH-YOUR-URL', encoding='utf-8'), bytes('ipfs://YOUR_IPFS_HASH', encoding='utf-8'))
    
    # Write the file out again
    with open('/Users/your/file/location/'+x, 'wb') as file:
        file.write(filedata)

Вы можете заменить любой критерий, который вы хотите.