Python 正则表达式重新格式化不正确的JSON数据
我有一些数据没有正确地保存在旧数据库中。我正在将系统移动到一个新的数据库,并重新格式化旧数据。旧数据如下所示:Python 正则表达式重新格式化不正确的JSON数据,python,json,Python,Json,我有一些数据没有正确地保存在旧数据库中。我正在将系统移动到一个新的数据库,并重新格式化旧数据。旧数据如下所示: a:10:{ s:7:"step_no";s:1:"1"; s:9:"YOUR_NAME";s:14:"Firtname Lastname"; s:11:"CITIZENSHIP"; s:7:"Indian"; s:22:"PROPOSE_NAME_BUSINESS1"; s:12:"ABC Limited"; s:22:"PROPOSE_NAM
a:10:{
s:7:"step_no";s:1:"1";
s:9:"YOUR_NAME";s:14:"Firtname Lastname";
s:11:"CITIZENSHIP"; s:7:"Indian";
s:22:"PROPOSE_NAME_BUSINESS1"; s:12:"ABC Limited";
s:22:"PROPOSE_NAME_BUSINESS2"; s:15:"XYZ Investment";
s:22:"PROPOSE_NAME_BUSINESS3";s:0:"";
s:22:"PROPOSE_NAME_BUSINESS4";s:0:"";
s:23:"PURPOSE_NATURE_BUSINESS";s:15:"Some dummy content";
s:15:"CAPITAL_COMPANY";s:24:"20 Million Capital";
s:14:"ANOTHER_AMOUNT";s:0:"";
}
data = {
"step_no": "1",
"YOUR_NAME":"Firtname Lastname",
"CITIZENSHIP":"Indian",
"PROPOSE_NAME_BUSINESS1":"ABC Limited",
"PROPOSE_NAME_BUSINESS2":"XYZ Investment",
"PROPOSE_NAME_BUSINESS3":"",
"PROPOSE_NAME_BUSINESS4":"",
"PURPOSE_NATURE_BUSINESS":"Some dummy content",
"CAPITAL_COMPANY":"20 Million Capital",
"ANOTHER_AMOUNT":""
}
我希望新外观采用正确的JSON格式,这样我就可以用python jut阅读如下内容:
a:10:{
s:7:"step_no";s:1:"1";
s:9:"YOUR_NAME";s:14:"Firtname Lastname";
s:11:"CITIZENSHIP"; s:7:"Indian";
s:22:"PROPOSE_NAME_BUSINESS1"; s:12:"ABC Limited";
s:22:"PROPOSE_NAME_BUSINESS2"; s:15:"XYZ Investment";
s:22:"PROPOSE_NAME_BUSINESS3";s:0:"";
s:22:"PROPOSE_NAME_BUSINESS4";s:0:"";
s:23:"PURPOSE_NATURE_BUSINESS";s:15:"Some dummy content";
s:15:"CAPITAL_COMPANY";s:24:"20 Million Capital";
s:14:"ANOTHER_AMOUNT";s:0:"";
}
data = {
"step_no": "1",
"YOUR_NAME":"Firtname Lastname",
"CITIZENSHIP":"Indian",
"PROPOSE_NAME_BUSINESS1":"ABC Limited",
"PROPOSE_NAME_BUSINESS2":"XYZ Investment",
"PROPOSE_NAME_BUSINESS3":"",
"PROPOSE_NAME_BUSINESS4":"",
"PURPOSE_NATURE_BUSINESS":"Some dummy content",
"CAPITAL_COMPANY":"20 Million Capital",
"ANOTHER_AMOUNT":""
}
我正在考虑使用正则表达式去掉不需要的部分,并使用caps中的名称重新格式化内容,但我不知道如何实现这一点。正则表达式在这里是错误的方法。没有必要,而且格式比您想象的要复杂一些 您在数据库中有数据。您可以使用以下命令在Python中对其进行简单的反序列化: 请注意,PHP字符串是字节字符串,而不是Unicode文本,因此,特别是在Python3中,如果希望能够重新编码为JSON,则必须先解码键值对。
decode\u strings=True
标志会为您解决这个问题。默认值为UTF-8,传入编码
参数以选择不同的编解码器
PHP还将数组用于序列,因此您可能必须首先将任何带整数键的解码dict
对象转换为列表,这就是fixup\u PHP\u arrays()
函数所做的
演示(对于修复的数据,许多字符串长度已关闭,并添加了空格):
正则表达式在这里是错误的方法。没有必要,而且格式比您想象的要复杂一些 您在数据库中有数据。您可以使用以下命令在Python中对其进行简单的反序列化: 请注意,PHP字符串是字节字符串,而不是Unicode文本,因此,特别是在Python3中,如果希望能够重新编码为JSON,则必须先解码键值对。
decode\u strings=True
标志会为您解决这个问题。默认值为UTF-8,传入编码
参数以选择不同的编解码器
PHP还将数组用于序列,因此您可能必须首先将任何带整数键的解码dict
对象转换为列表,这就是fixup\u PHP\u arrays()
函数所做的
演示(对于修复的数据,许多字符串长度已关闭,并添加了空格):