Я пытаюсь извлечь динамическое значение (статические символы) из файла csv в определенном столбце и вывести значение в другой csv.'~', приводящий к нулевым результатам в скрипте python
Элемент данных, который я пытаюсь извлечь, это «12385730561818101591» из значения «callback=B~12385730561818101591
», расположенного в определенном столбце.
Я написал ниже сценарий python, но результаты вывода всегда пусты. Регулярное выражение '=(~[0-9]+)
' было проверено на успешное извлечение значения «12385730561818101591». Это было проверено на www.regex101.com
.
Когда я использую это в Python, результаты не отображаются в выходном файле. У меня такое чувство, что «~» вызывает ошибку. Когда я попытался найти «~
» в исходном CSV-файле, результаты не найдены, но он есть!
Может сообщество помочь мне следующее:
(1) Определить первопричину без выхода и проверить, если «~» является проблемой. Может ли проблема также заключаться в том, как я разбиваю строки? Я не уверен, что строки должны быть разделены на ';' вместо ','.
import csv
import sys
import ast
import re
filename1 = open("example.csv", "w")
with open('example1.csv') as csvfile:
data = None
patterns = '=(~[0-9]+)'
data1= csv.reader(csvfile)
for row in data1:
var1 = row[57]
for item in var1.split(','):
if re.search(patterns, item):
for data in item:
if 'common' in data:
filename1.write(data + '\n')
filename1.close()
Можете вложить первые 2-3 строки вашего csv-файла? – MYGz
Тильда не вызывает особых проблем, ваш шаблон неправильный, это проблема. Как вы описываете B после '=' в вашем шаблоне? –
Чтобы узнать, что является разделителем, посмотрите на свой файл. –