该字段非常复杂,有如下问题:
1. 在mysql数据库中它是一个json类型字段
2. 在python中最外面它是一个Field,里面包含list、dict、有各种单双引号的文本
解决办法:
为了把这条数据插入mysql,进行如下处理:
1. 对于python,它虽然是Field,也可以理解成dict,所有可以使用json.dumps方法转成json数据
detail_info = json.dumps(item['detail_info'])
这样做之后有如下好处:(1)对于detail_info中的双引号问题基本不用考虑,该方法已经帮忙解决了。(2)list也兼容json,也可以直接存入数据库了。
2. 如此,只有文本中的单引号问题了。
(1)为了把json插入mysql,必须在sql中把含这个字段的值用单引号引起来,写成这样: \'%s\'
(2)如果里面还有文本也含有单引号,这个sql就会断掉,因此要把detail_info文本中的单引号加反斜杠
detail_info = re.sub(r"'", r"\'", detail_info)这样问题就解决了。