无法使用 f-Strings 将字符串转换为自定义字符串

Can't convert a string to a customized one using f-Strings

我正在尝试使用一些动态值创建参数,所以我尝试使用 f-Strings。然而,我无法实现我所期望的。

如果我使用以下值:

lat = '13715482'
lon = '6320767'
some_id = '7783' 

在以下参数中:

parameter = {'lat':f'{lat}','lon':f'{lon}','spatRef':{'spat_id':f'{some_id}'}}

我得到如下输出:

{'lat': '13715482', 'lon': '6320767', 'spatRef': {'spat_id': '7783'}}

然而,我想要得到的是 (notice the two double quotes around the whole string):

"{'lat': '13715482', 'lon': '6320767', 'spatRef': {'spat_id': '7783'}}"

我怎样才能得到它?

您需要打印字符串的内部表示,为此我们可以使用 repr 函数。

lat = '13715482'
lon = '6320767'
some_id = '7783' 
parameter = {'lat':f'{lat}','lon':f'{lon}','spatRef':{'spat_id':f'{some_id}'}}
print(repr(str(parameter)))

输出

C:\Users\albin\Documents\codebase> python3 test.py
"{'lat': '13715482', 'lon': '6320767', 'spatRef': {'spat_id': '7783'}}"

我认为您正在搜索 str()

lat = '13715482'
lon = '6320767'
some_id = '7783'

parameter = str(
  {
    'lat': lat,
    'lon': lon,
    'spatRef': {
      'spat_id': some_id
    }
  }
)

要在其周围使用引号,您可以使用:

print(f'{parameter!r}')
>>> "{'lat': '13715482', 'lon': '6320767', 'spatRef': {'spat_id': '7783'}}"

这使用字符串的 __repr__