Tôi đang cố gắng để có được một số dữ liệu trong một danh sách các từ điển. Dữ liệu đến từ tệp CSV để tất cả là chuỗi. Tất cả các khóa trong tệp đều có các qoutes gấp đôi, nhưng vì đây là tất cả các chuỗi, tôi muốn xóa chúng để chúng trông như thế này trong từ điển:
{'key':value}
Thay vì điều này
{'"key"':value}
Tôi đã thử chỉ đơn giản là sử dụng chuỗi = chuỗi [1: -1], nhưng đây không phải là công việc ...
Đây là mã của tôi:
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
Tất cả các bản in tôi nhận được từ bản in tôi đều tốt, không có dấu ngoặc kép, nhưng khi tôi nối dữ liệu vào DataOutput, các trích dẫn đã trở lại!
Bất kỳ ý tưởng làm thế nào để làm cho chúng biến mất mãi mãi?
Giới thiệu
Có một số cách bạn có thể xóa trích dẫn từ một chuỗi trong Python. Bạn có thể cần phải loại bỏ tất cả các trích dẫn hoặc chỉ các trích dẫn xung quanh một chuỗi. Bạn cũng có thể cần phải xóa trích dẫn đơn hoặc đôi.
Trong bài viết ngắn này, chúng tôi đã biên soạn một danh sách toàn diện các phương thức bạn có thể sử dụng để xóa trích dẫn từ một chuỗi trong Python. Nó hoàn toàn tùy thuộc vào bạn mà bạn sẽ sử dụng. Xin lưu ý rằng các giải pháp chúng tôi đã liệt kê ở đây không được đặt hàng từ tốt nhất đến tồi tệ nhất. Mỗi giải pháp đều tốt miễn là nó đáp ứng nhu cầu của bạn trong một trường hợp cụ thể.
Cách xóa tất cả các trích dẫn khỏi một chuỗi trong Python
Trước hết, chúng ta hãy xem cách xóa tất cả các trích dẫn từ một chuỗi. Các giải pháp được liệt kê trong phần này có thể được thay đổi để làm việc với cả dấu ngoặc kép và kép. Nhưng, với mục đích của bài viết này, giả sử chúng ta có một chuỗi ví dụ có ba dấu ngoặc kép trong đó:
example_str = '"This is a string" with quotes"'
Trong phần này, chúng ta sẽ xem xét một số cách để loại bỏ tất cả
{'"key"':value}
1 khỏi {'"key"':value}
2.str.replace[]
Cách tiếp cận đầu tiên chúng ta sẽ thảo luận là sử dụng phương pháp
{'"key"':value}
3 trên {'"key"':value}
2. Nó chấp nhận hai đối số - chuỗi chúng tôi muốn thay thế và chuỗi thay thế. Trong trường hợp này, chúng tôi sẽ thay thế dấu ngoặc kép [{'"key"':value}
1] bằng một chuỗi trống:new_str = example_str.replace['"', '']
print[new_str] # This is a string without quotes
{'"key"':value}
3 được sử dụng theo cách này sẽ loại bỏ tất cả các trích dẫn kép khỏi {'"key"':value}
2.Biểu cảm thường xuyên
Cách tiếp cận này sử dụng các biểu thức chính quy để xóa tất cả các trích dẫn từ một chuỗi. Trước khi chúng tôi bắt đầu sử dụng các biểu thức thông thường trong Python, trước tiên chúng tôi cần nhập mô -đun
{'"key"':value}
8:import re
Sau đó, chúng ta có thể sử dụng phương thức
{'"key"':value}
9 để thay thế tất cả các lần xuất hiện của dấu ngoặc kép bằng chuỗi trống:new_str = re.sub['"', '', example_str]
print[new_str] # This is a string without quotes
Điều này sẽ cung cấp cho chúng tôi
{'"key"':value}
2 mà không có bất kỳ trích dẫn nào trong đó.str.join []
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
1 là một phương pháp khác mà chúng ta có thể sử dụng để xóa tất cả các trích dẫn từ một chuỗi trong Python. Giải pháp này có cú pháp phức tạp hơn một chút so với các giải pháp khác nếu bạn chưa quen thuộc với phương pháp csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
2. Về cơ bản, chúng ta sẽ đi qua ký tự {'"key"':value}
2 theo từng ký tự và nối vào mỗi ký tự không phải là dấu ngoặc kép cho chuỗi trống. Bằng cách đó, chúng tôi sẽ nhận được {'"key"':value}
2 mà không có bất kỳ trích dẫn nào trong đó:new_str = ''.join[c for c in example_str if c not in '"']
print[new_str] # This is a string without quotes
Cách xóa trích dẫn xung quanh một chuỗi
Cho đến nay, chúng tôi đã thảo luận về một số cách tiếp cận về cách xóa tất cả các dấu ngoặc kép khỏi một chuỗi trong Python. Đó chỉ là một cách nhìn vào việc xóa trích dẫn từ một chuỗi. Có thể cho rằng, vấn đề phổ biến hơn là làm thế nào để loại bỏ các trích dẫn xung quanh một chuỗi. Phương pháp
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5 được dự định để làm điều đó. Do đó, chúng tôi sẽ thảo luận về phương pháp csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5 trong phần này.Giả sử chúng tôi có cùng một cách chính xác
{'"key"':value}
2 như trong phần trước và chúng tôi chỉ muốn xóa các dấu ngoặc kép đầu tiên và cuối cùng:example_str = '"This is a string" with quotes"'
Sử dụng
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5 với dấu Qoutation kép làm đối số của nó sẽ loại bỏ các dấu ngoặc kép dẫn đầu và dấu ngoặc từ {'"key"':value}
2:Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!
new_str = example_str.strip['"']
print[new_str] # This is a string" without quotes
Lưu ý: Cho dù có bao nhiêu dấu ngoặc kép hàng đầu và/hoặc hàng đầu trong chuỗi,
5 sẽ loại bỏ tất cả chúng. No matter how many leading and/or leading
quotation marks are in the string, the csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5 will remove all of them.Bên cạnh phương pháp
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5 thông thường, cũng có hai trong số các dẫn xuất của nó - example_str = '"This is a string" with quotes"'
2 và example_str = '"This is a string" with quotes"'
3. Cái đầu tiên xóa tất cả các trích dẫn hàng đầu và phần thứ hai xóa tất cả các trích dẫn theo dõi:{'"key"':value}
0Sự kết luận
Trong bài viết ngắn này, chúng tôi đã có một cái nhìn toàn diện về cách xóa trích dẫn từ một chuỗi trong Python. Trước hết, chúng tôi đã giải thích cách xóa tất cả các trích dẫn khỏi một chuỗi bằng một số phương thức khác nhau -
{'"key"':value}
3, csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
1 và {'"key"':value}
9. Sau đó, chúng tôi đã xem xét phương pháp csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open["browser-ww-monthly-201305-201405.csv","r"]
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split[csvDelimiter]
for i in data:
if type[i] == str: # Doesn't work, I also tried if isinstance[i, str]
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append[{data[0] : data[1]}]
dataFile.close[]
print "Data output:\n"
print dataOutput
5, cũng như các dẫn xuất của nó example_str = '"This is a string" with quotes"'
2 và example_str = '"This is a string" with quotes"'
3.