#python #string #escaping #exec
Вопрос:
Я составляю строку для выполнения, чтобы присвоить значение произвольно глубокой точке в файле json, значения, которые я присваиваю, являются строками, и некоторые из этих строк содержат кавычки, вот где я получаю ошибки.
Я попытался заменить «в строках, которые я назначаю», заключив строку, которую я назначаю, в тройные кавычки и то и другое вместе.
Кроме того, все, что ниже, не начиналось в тройных кавычках, это всего лишь последняя попытка решить эту проблему.
Код
for index, row in md_csv.iterrows():
json_ref_string = ''
for k in row['Path']:
json_ref_string = "['"
json_ref_string = k
json_ref_string ="']"
my_string ="""jo""" json_ref_string """=""" """"""" str(translated_csv.iloc[index][1]) """""""
exec(my_string)
Ошибка
File "/Users/maxgreen/opt/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3437, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-244-a1adf20fc0ec>", line 9, in <module>
exec(my_string)
File "<string>", line 1
jo['agreementinfo']="Estoy celebrando este acuerdo en nombre de la parte contratante cuyos detalles he presentado en la página "INFORMACIÓN COMERCIAL", en adelante, el "COMERCIANTE""
^
SyntaxError: invalid syntax
Комментарии:
1. python_object = eval(my_string)?
2. Попробуйте добавить
print(my_string)
, чтобы увидеть, что вы пытаетесь выполнить.3. Вероятно, было бы проще, если бы вы использовали необработанную f-строку.
Ответ №1:
Советы от бармара в комментариях работали с использованием строковых литералов