将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)