装载自:http://smilejay.com/2014/10/convert_string_to_dict_python/

我将数据库连接相关的一些用户名/密码/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哦。

看实例代码:https://github.com/smilejay/python/blob/master/py2014/string2dict.py

Created on Oct 14, 2014

@author: Jay <smile665@gmail.com>
''' 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()

参考资料:
http://stackoverflow.com/questions/988228/converting-a-string-to-dictionary
http://stackoverflow.com/questions/15596121/converting-a-string-into-dictionary-python

python -- 将string转换成dict的方法的更多相关文章

  1. 编写Python脚本把sqlAlchemy对象转换成dict的教程

    编写Python脚本把sqlAlchemy对象转换成dict的教程 在用sqlAlchemy写web应用的时候,经常会用json进行通信,跟json最接近的对象就是dict,有时候操作dict也会比操 ...

  2. ASP.Net中实现上传过程中将文本文件转换成PDF的方法

    iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...

  3. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  4. 在C#中将String转换成Enum:

    一:  在C#中将String转换成Enum: object Enum.Parse(System.Type enumType, string value, bool ignoreCase); 所以,我 ...

  5. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  6. AS3中String转换成Boolean

    AS3中, 对布尔值的转换, 规定所有的非空字符串都是true. 下面都不行: var f:Boolean = new Boolean(str); var f:Boolean = str as Boo ...

  7. jquery里把数组转换成json的方法

    首先来看,jquery里自带的,和json相关的函数: 1.$.parseJSON  :  用来解析JSON字符串,返回一个对象. 什么叫“JSON字符串”? 比如: var a={name:&quo ...

  8. python class对象转换成json/字典

    # -*- encoding: UTF-8 -*- class Student: name = '' age = 0 def __init__(self, name, age): self.name ...

  9. string转换成color转

    string转换成color             string col = "#FF8400";            this.BackColor = System.Draw ...

随机推荐

  1. 将Windows上的Oracle迁移至Linux

    迁移前提: 1.在安装Linux数据库实例时,注意选择的编码格式要与Windows的数据库实例一致. 迁移步骤 1.检查Linux上数据库实例的编译格式 SQL> select userenv( ...

  2. Oracle查看表空间容量

    select /*+ no_merge */ al.tablespace_name, round(al.currsizemb) currsizemb, round(al.maxsizemb) maxs ...

  3. vue的简单测试

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. JavaScript自定义字符串格式化

    在JS中没有字符串拼接的方法,如过要使用怎么办呢?这时我们可以通过字符串的prototype可以自定义方法. <script> String.prototype.format = func ...

  5. vue-cli新建一个项目

    零.我想把项目安装在C:\www\Arup.DAH.ABCD\SourceCode\FrontEnd这个目录下,所以在我想安装的位置,Shift+右键-->powershell窗口,打开下图位置 ...

  6. html5-audio 播放列表和自动播放

    一个简单audio的列表和播放小例子 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  7. Angular入门教程四

    4.8依赖注入DI 通过依赖注入,ng想要推崇一种声明式的开发方式,即当我们需要使用某一模块或服务时,不需要关心此模块内部如何实现,只需声明一下就可以使用了.在多处使用只需进行多次声明,大大提高可复用 ...

  8. RocketMQ读书笔记6——可靠性优先的使用场景

    [顺序消息] 顺序消费是指消息的产生顺序和消费顺序相同. 比如订单的生成.付款.发货,这三个消息必须按顺序处理才可以. [顺序消息的分类] 全局顺序消息和部分顺序消息. 上面订单的例子,其实是部分顺序 ...

  9. 图片裁剪(基于RxPaparazzo)

    图片裁剪(基于RxPaparazzo) 前言:基于RxPaparazzo的图片裁剪,图片旋转.比例放大|缩小. 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及 ...

  10. c#之反射(Reflection)

    一.反射是什么 反射就是.Net FrameWork框架为我们提供的一个帮助类库,它可以读取我们通过编译后生成的dll和exe文件里面metadate的信息. 反射可以动态的加载dll和exe文件,动 ...