使用不同的线程(Python)从JSON文件中消除不需要的字符
在我的python文件中,我创建了一个名为使用不同的线程(Python)从JSON文件中消除不需要的字符,python,json,multithreading,replace,python-multithreading,Python,Json,Multithreading,Replace,Python Multithreading,在我的python文件中,我创建了一个名为Download的类。类所在的代码: import requests, json, os, pytube, threading class Download: def __init__(self, url, json=False, get=False, post=False, put=False, unwanted="", wanted="", unwanted2="", wanted2="", unwanted3="", wanted3=
Download
的类。类所在的代码:
import requests, json, os, pytube, threading
class Download:
def __init__(self, url, json=False, get=False, post=False, put=False, unwanted="", wanted="", unwanted2="", wanted2="", unwanted3="", wanted3=""):
self.url = url
self.json = json
self.get = get
self.post = post
self.put = put
self.unwanted = unwanted
self.wanted = wanted
self.unwanted2 = unwanted2
self.wanted2 = wanted2
self.unwanted3 = unwanted3
self.wanted3 = wanted3
def downloadJson(self):
if self.get is True:
downloadJson = requests.get(self.url)
downloadJson = str(downloadJson.content)
downloadJsonS = str(downloadJson) # This saves the downloaded JSON file as string
if self.json is True:
with open("downloadedJson.json", "w") as writeDownloadedJson:
writeDownloadedJson.write(json.dumps(downloadJson))
writeDownloadedJson.close()
with open("downloadedJson.json", "r") as replaceUnwanted:
a = replaceUnwanted.read()
x = a.replace(self.unwanted, self.wanted)
# y = a.replace(self.unwanted2, self.wanted2)
# z = a.replace(self.unwanted3, self.wanted3)
print(x)
with open("downloadedJson.json", "w") as writeUnwanted:
# writeUnwanted.write(y)
# writeUnwanted.write(z)
writeUnwanted.write(x)
else:
# with open("downloadedJson.json", "w")as j:
# j.write(downloadJsonS)
# j.close()
pass
这一切都是我自己写的,我理解它的工作原理。我的目标是删除下载后JSON文件中所有不需要的字符,例如:\\n、\'或\n。我在\uuuu init\uuuu()
函数中有很多参数,比如\uuuu init\uuuuuu(不需要的=”,想要的=”,不需要的=”)
等等。
这样,当向不需要的参数添加任何字符时,例如:\\n,它应该用空格替换所有这些字符。这是正确的,它的工作。作为注释的代码行是我正在使用的代码行,但这不起作用。它将只替换only1参数中的字符
是否有任何方法可以使用线程在每个参数中传递所有不需要的字符。如果无法使用线程,是否有其他选择
顺便说一下,我正在执行类的文件:(main.py):
谢谢您可以一个接一个地应用替换:
x = a.replace(self.unwanted, self.wanted)
x = x.replace(self.unwanted2, self.wanted2)
x = x.replace(self.unwanted3, self.wanted3)
您也可以将替换项链接在一起,但这很快就会变得难以理解:
x = a.replace(...).replace(...).replace(...)
顺便说一句,不是有多个unwantedN
和wantedN
,
使用(不需要的,想要的)
对的列表可能会容易得多,如下所示:
def __init__(self, url, json=False, get=False, post=False, put=False, replacements=[]):
self.url = url
self.json = json
self.get = get
self.post = post
self.put = put
self.replacements = replacements
然后可以在循环中执行替换:
x = a
for unwanted, wanted in self.replacements:
x = x.replace(unwanted, wanted)
可能你想把替换链接起来,比如x=a.replace(self.unwanted2,self.wanted2)
y=x.replace(self.unwanted2,self.wanted2)
或者干脆a=a.replace(self.unwanted2,self.wanted2)
?是的,我会试试你说的:)是的!成功了。多谢各位。
x = a
for unwanted, wanted in self.replacements:
x = x.replace(unwanted, wanted)