PYTHON中将STRING转化为DICT的方法

我将数据库连接相关的一些用户名/密码/host/port等各种东西作为一个string保存在了数据库中,我要用MySQLdb检查这些数据库连接信息是够能正常使用,需要将数据库信息中的用户名/密码/host/port等信息作为参数传给MySQLdb.Connect()。者就需要将'{"host":"192.168.11.22", "port":3306, "user":"abc","passwd":"123", "db":"mydb", "connect_timeout":10}'”这样的string转化为dict。

在python中,将string转为一个dict,我所知有如下3中方法:
1. ast.literal_eval() 这是我常用的,依赖python2.6以上,据介绍时说比直接eval更安全一些,我没细究哈。
2. eval() 在string内容比较可控/安全的前提下,eval是不错的方法。
3. json.loads() 用json提供的loads方法是不错的,不过key/value中的string被转化为了unicode哦。

看实例代码:python/string2dict.py at master · smilejay/python · GitHub

import MySQLdb
import ast
import json


def my_run():
    try:
        s = '{"host":"192.168.11.22", "port":3306, "user":"abc",\
              "passwd":"123", "db":"mydb", "connect_timeout":10}'
        d = ast.literal_eval(s)
        print type(d)
        print d
        d1 = eval(s)
        print type(d1)
        print d1
        d2 = json.loads(s)
        print type(d2)
        print d2
        MySQLdb.Connect(host=d['host'], port=d['port'], user=d['user'],
                        passwd=d['passwd'], db=d['db'],
                        connect_timeout=d['connect_timeout'])
        print 'right'
    except Exception, e:
        print 'wrong %s' % e


if __name__ == '__main__':
    my_run()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值