python3 中 ConfigParser 中的 ValueError
ValueError in ConfigParser in python3
我正在尝试使用以下字符串更新我的 configuration.ini
文件的 [Financial Times: Financial-Services]
部分的 last_entry_id
:
http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct
这是我的 configuration.ini
文件的相应部分:
[Financial Times: Financial-Services]
feed_updated_on =
feed_updated_field = ['updated']
link = http://www.ft.com/rss/companies/financial-services
last_entry_id =
id_field = link
但是在我的代码中,当我尝试以下行时:
id_of_first_link = 'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct'
feed_link['last_entry_id'] = id_of_first_link
我收到错误:
ValueError: invalid interpolation syntax in 'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct' at position 90
feed_link
是configuration.ini
文件中[Financial Times: Financial-Services]
的引用名。如何解决这个问题?
异常引用了一个无效的interpolation syntax
这是因为在 Python 中,您可以使用以下语法 插入 字符串:
mystring = "Hello, my name is %s"
print(mystring % 'Whosebug')
我认为在 configparser
的某个时候,它一定是在使用这种语法,因此得到一个它无法正确处理的字符串。
有几种方法可以解决这个问题。您可以使用我向您展示的 str.replace()
,它通过使用双百分号 %%
...
转义 %
或者您可以尝试使用以下语法提供原始字符串:
id_of_first_link = r'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct'
注意起始单引号前的 r
。
原始字符串还允许您键入 r'C:\Windows\system32'
之类的字符串,而不会出现反斜杠意外转义字符的情况。
我正在尝试使用以下字符串更新我的 configuration.ini
文件的 [Financial Times: Financial-Services]
部分的 last_entry_id
:
http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct
这是我的 configuration.ini
文件的相应部分:
[Financial Times: Financial-Services]
feed_updated_on =
feed_updated_field = ['updated']
link = http://www.ft.com/rss/companies/financial-services
last_entry_id =
id_field = link
但是在我的代码中,当我尝试以下行时:
id_of_first_link = 'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct'
feed_link['last_entry_id'] = id_of_first_link
我收到错误:
ValueError: invalid interpolation syntax in 'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct' at position 90
feed_link
是configuration.ini
文件中[Financial Times: Financial-Services]
的引用名。如何解决这个问题?
异常引用了一个无效的interpolation syntax
这是因为在 Python 中,您可以使用以下语法 插入 字符串:
mystring = "Hello, my name is %s"
print(mystring % 'Whosebug')
我认为在 configparser
的某个时候,它一定是在使用这种语法,因此得到一个它无法正确处理的字符串。
有几种方法可以解决这个问题。您可以使用我向您展示的 str.replace()
,它通过使用双百分号 %%
...
%
或者您可以尝试使用以下语法提供原始字符串:
id_of_first_link = r'http://www.ft.com/cms/s/0/46858280-36f4-11e6-a780-b48ed7b6126f.html?ftcamp=published_links%2Frss%2Fcompanies_financial-services%2Ffeed%2F%2Fproduct'
注意起始单引号前的 r
。
原始字符串还允许您键入 r'C:\Windows\system32'
之类的字符串,而不会出现反斜杠意外转义字符的情况。