将python字符串转换为bankstatement的json
这是我的意见将python字符串转换为bankstatement的json,python,json,string,Python,Json,String,这是我的意见 string = '07/08/2018 07/08/2018 IMPS DR-1763308000000116-PYTM0123456-917 592674 5,000.00 39,325.93' 我需要像这样的输出 {'date1':'07/08/2018','date2':'07/08/2018','remark':'IMPS DR-1763308000000116-PYTM0123456-917 592674','credit':'5,000.00','balance'
string = '07/08/2018 07/08/2018 IMPS DR-1763308000000116-PYTM0123456-917 592674 5,000.00 39,325.93'
我需要像这样的输出
{'date1':'07/08/2018','date2':'07/08/2018','remark':'IMPS DR-1763308000000116-PYTM0123456-917 592674','credit':'5,000.00','balance' : '39,325.93' }
我试过了
result = { 'date1': list1[0], 'date2': list1[1], 'balance': list1[-1]}
print(result)
输出
{'date1': '07/08/2018', 'date2': '07/08/2018', 'balance': '39,325.93'}
您可以使用split来拆分字符串,并使用Scott提到的字符串,但是,如果您可以将其以这种格式表示为字符串,则可以使用split
str = '{'date1':'07/08/2018','date2':'07/08/2018','remark':'IMPS DR-1763308000000116-PYTM0123456-917 592674','credit':'5,000.00','balance' : '39,325.93' }'
#then you can just import json and do
json = json.loads(str)
这里有一个简单的解决方案-
string = '07/08/2018 07/08/2018 IMPS DR-1763308000000116-PYTM0123456-917 592674 5,000.00 39,325.93'
l = string.split()
result = {'date1': l[0],
'date2': l[1],
'remark': ' '.join((l[2],l[3])),
'credit': l[4],
'balance': l[5]}
输出
{'date1': '07/08/2018', 'date2': '07/08/2018', 'remark': 'IMPS DR-1763308000000116-PYTM0123456-917', 'credit': '592674', 'balance':'5,000.00'}
试试这个:
words = string.split(" ")
values = words[:2] + [" ".join(words[2:-2])] + words[-2:]
keys = ["date1", "date2", "remark", "credit", "balance"]
result = {}
for i in range(5):
result[keys[i]] = values[i]
print(result)
输出:
{'date1': '07/08/2018',
'date2': '07/08/2018',
'remark': 'IMPS DR-1763308000000116-PYTM0123456-917 592674',
'credit': '5,000.00',
'balance': '39,325.93'}
您可以使用在单个变量(列表)中获取备注的所有部分
作为旁注-不要使用
string
作为变量名-它是python标准库中的一个模块。您还没有问任何问题。请展示您尝试过的内容,并准确描述它是如何不满足您的需要的。编辑您的帖子以包括所有相关信息-代码、输出、问题、问题、,等等。不要忘记应用正确的格式。首先,不能使用单引号使其成为字符串,因为它里面也有单引号。然后,生成的字符串不是有效的json,因此json.loads()
将引发JSONDecodeError
。还有其他方法可以将这样的字符串转换为dict对象,然后作为json字符串转储(这就是OP所追求的)。然而,如果他们有这种格式,他们会问,你不认为吗?另外,作为旁注-避免使用str
作为变量名-它是内置函数在切片中使用-2->“”。join(l[2:-2]),它考虑了忽略最后2个值的元素。
import json
keys = ['date1', 'date2', 'remark', 'credit', 'balance']
foo = '07/08/2018 07/08/2018 IMPS DR-1763308000000116-PYTM0123456-917 592674 5,000.00 39,325.93'
date1, date2, *remarks, credit, balance = foo.split()
remarks = ' '.join(remarks)
#data as dict
data = dict(zip(keys, [date1, date2, remarks, credit, balance]))
print(data)
# if you need json string
my_json = json.dumps(data, indent=4)
print(my_json)