具有包含内容的txt:
{
hello : 1,two:three,four:five,six:seven,
}
如何删除上述字符串中的最后一个,
?
,同时将它们用作词典。由于最后一个定界符,因此无法解析。
代码:
import json
d2=json.load(open(test.txt))
我无法更改源代码。因为我正在从一个json文件(json.dump)中提取数据并创建一个新的json。除了转储/更改源代码之外,还有什么其他方法
答案 0 :(得分:2)
这将删除字符串中的最后一个,
,而不需要其他import
。
with open('test.txt', 'r') as f:
s = f.read()
s = s[::-1].replace(',', '', 1)[::-1]
s
的输出为:
{
hello : 1,two:three,four:five,six:seven
}
答案 1 :(得分:2)
简单的replace
应该可以正常工作。
broken_json = '''{
hello : 1,two:three,four:five,six:seven,
bye : 42,ick:poo,zoo:bar,}'''
j = broken_json.replace(',}', '}').replace(',\n}','\n}')
此时的结果仍然不是有效的JSON,因为字典键需要加引号;但这不在您的问题范围内,因此我不会尝试解决这一部分。
答案 2 :(得分:-1)
string ='{hello : 1,two:three,four:five,six:seven,}'
length = len(string)
for i in range(length):
if(string[i] == ','):
string2 = string[0:i] + string[i + 1:length]
print (string2)
输出类型为字符串。因此,稍后将其转换为字典。
答案 3 :(得分:-2)
import re
string ='{hello : 1,two:three,four:five,six:seven,}'
match = re.search(r'(.*),[^,]*$', string)
print (match.group(1)+"}")
尝试使用此@selcuk以获得高效