Если вы когда-либо пытались развернуть огромный проект 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)
Вы можете заменить любой критерий, который вы хотите.