У меня есть несколько файлов JSON, заполненных строками, которые могут содержать до нескольких сотен строк. В моем примере файла будет только три строки, но в среднем таких фраз примерно 200-500:
{
"version": 1,
"data": {
"phrases":[
"A few words that's it.",
"This one, has a comma in it!",
"hyphenated-sentence example"
]
}
}
Мне нужно, чтобы в файл был включен скрипт (мы можем назвать его ExampleData.json) и удалить все знаки пунктуации (в частности, эти символы: ,.?!'-
из файла, не удаляя ,
за пределами двойных кавычек. По сути, так:
"A few words that's it.",
"This one, has a comma in it!",
"hyphenated-sentence example."
Получается так:
"A few words that's it",
"This one has a comma in it",
"hyphenated sentence example"
Также обратите внимание, как удаляются все знаки препинания, кроме дефиса, который заменяется пробелом.
Я нашел почти такой же вопрос, как этот, но для csvфайлы
здесь , но не удалось перевести версию csv во что-то, что будет работать с JSON.
Самым близким, что я получил с python, была строка через чужой ответ в другом потоке.
input_str = 'please, remove all the commas between quotes,"like in here, here, here!"'
quotes = False
def noCommas(string):
quotes = False
output = ''
for char in string:
if char == '"':
quotes = True
if quotes == False:
output += char
if char != ',' and quotes == True:
output += char
return output
print noCommas(input_str)
(Извините, я не знаю, как поместить блоки кода в кавычки)Но это работает только для одного персонажа одновременно. Но добавление каких-либо дополнительных правил приводит к тому, что текст вне кавычек удваивается (пожалуйста, становится pplleeaassee). И последнее, что я должен сделать это в python2.7.5, что из-за того, что я собрал в поиске, делает это немного сложнее. Мне жаль, что я все еще новичок в python и должен сделать что-то столь нетривиальное сразу, но на самом деле это был не мой выбор.