最近几天 频繁看到有这种写法

BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"

第一次看到的pythoner看到可能会有点懵逼。因为我们见得最多的应该是这样的字符串格式化

'%s sdjiaosdoijasoid %s' % (a, b)

而上面的写法很容易让我们联想到python的 format格式化写法。但是事实是并不是这样的 我们可能会做这样的尝试

levelname = 'haha'
name = 'xixi'
message = 'kexuan' BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
print BASIC_FORMAT % (levelname, name, message)

但是得到的结果却是

print BASIC_FORMAT % (levelname, name, message)
TypeError: format requires a mapping

看来并不是这么写的。经过好一阵google 才发现原来这种写法接受的对象是字典,所以正确的写法是

levelname = 'haha'
name = 'xixi'
message = 'kexuan' BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
print BASIC_FORMAT % {'levelname': levelname, 'name': name, 'message': message}

得到的结果

haha:xixi:kexuan

所以遇到这种写法的时候,大家一定要特别注意呀。

python格式化字符串Type Error: Format Requires Mapping 的问题的更多相关文章

  1. Python格式化字符串(f,F,format,%)

    # 格式化字符串: 在字符串前加上 f 或者 F 使用 {变量名} 的形式来使用变量名的值 year = 2020 event = 'Referendum' value = f'Results of ...

  2. Python格式化字符串~转

    Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...

  3. Python格式化字符串知多少

    字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(%) 替换.如一句问候语: ...

  4. Python格式化字符串和转义字符

    地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义     符   号     说     明 ...

  5. Python格式化字符串--format

    format格式化字符串方法相较于老版%格式方法的优点: 1.不需要理会数据类型的问题,在%方法中'%s'只能替代字符串类型. 2.单个参数可以多次输出,参数顺序可以不相同. 3.填充方式十分灵活,对 ...

  6. 【转】Python格式化字符串str.format()

    原文地址:http://blog.xiayf.cn/2013/01/26/python-string-format/ 每次使用Python的格式字符串(string formatter),2.7及以上 ...

  7. Python格式化字符串

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...

  8. Python - 格式化字符串的用法

    0. 摘要 Python支持多种格式化字符串的方法,包括%-fromatting.str.format().f-strings三种,f-strings是Python3.6以后出现的一种新方法,相比其他 ...

  9. Python格式化字符串、占位符、合并数组

    合并数组 参考链接:https://www.cnblogs.com/chaihy/p/7243143.html >>> a=[2] >>> b=[3] >&g ...

随机推荐

  1. log4j2的环境变量使用

    官方文档  http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup

  2. VsCode语言设置为中文

    一.安装插件 二.Ctrl+shift+p 搜索Configure Display Language 三.修改locale.json { // Defines VS Code's display la ...

  3. 工具 使用Fiddler进行手机抓包

    Fiddler 手机抓包 Web代理服务器 可以抓https包 手机和电脑处于同一网络 Tools -> Options... -> Connections Allow remote co ...

  4. 【Codeforces Round 464】Codeforces #265 (Div. 1)

    模拟RD265 ABC三题,Rank58 Codeforces 464 A 题意:给定一个字符串,求比这个字符串字典序大并且和它长度相等的第一个不含有长度大于等于2的回文串的字符串. 思路:首先我们枚 ...

  5. ubuntu (14.04) 卸载 gnome 系统桌面

    1.将ubuntu 的图形界面切到命令行界面. 2.卸掉 gnome-shell 的主程序 sudo apt-get remove gnome-shell 3.卸载 gnome sudo apt-ge ...

  6. 动手动脑(lesson2)

    一·随机数生成问题 //信1605-3 20163683 蔡金阳 package lesson2; public class Suiji { private static final int N = ...

  7. 5、数组&字符串&结构体&共用体&枚举

    程序中内存从哪里来 三种内存来源:栈(stack).堆(heap).数据区(.date): 栈(stack) 运行自动分配.自动回收,不需要程序员手工干预: 栈内存可以反复使用: 栈反复使用后,程序不 ...

  8. 微信小程序——获取用户unionId

    1.获取code 2.获取openid 3.获取access_token 4.获取unionid

  9. SRP周记_20190418

    SRP的全名是Student research project (我猜的),对于部分学生来说,不做就相当于不能毕业,一个project大概做一年左右,算是我工的一个特色.本人参加的SRP是做一个编译原 ...

  10. Spring Boot 2.0(七):Spring Boot 如何解决项目启动时初始化资源

    在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等.今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资 ...