我需要在'。'处分割字符串。而且之后的一切都无关紧要,我只需要索引[0]的第一个元素即可。
我已经尝试过在for循环中使用.split('。')[0],但是输出永远不会改变。
text.txt文件如下所示:[{“ description”:“ large”,“ istrue”:“ yes”,“ name”:“ george.doe.jane”,“ clear”:“ true”,“ money“:5000}]它具有多个对象,但它们都是相同的。
output_file = open ('text.txt', 'r')
json_array = json.load(output_file)
json_list = []
for item in json_array:
name = "name"
money = "money"
json_items = {name:None, money:None}
json_items[name.split('.')[0]] = item[name.split('.')[0]]
json_items[money] = item[money]
json_list.append(json_items)
当前输出看起来像{'name':'george.doe.jane','money':5000} 我希望它看起来像{'name':'george','doe','jane','money':5000}
答案 0 :(得分:1)
您可以使用with
上下文管理器打开文件,并在.
上拆分名称以创建名称列表
import json
#Open the file
with open ('text.txt', 'r') as output_file:
#Load the json array
json_array = json.load(output_file)
#Iterate through the list and append the resultant dictionary to the list
json_list = [{'name': item['name'].split('.'), 'money': item['money']} for item in json_array]
print(json_list)
输出将为
[{'name': ['george', 'doe', 'jane'], 'money': 5000}]
答案 1 :(得分:0)
我认为您使用的是.split()
错误:足够公平。这是其用法示例:
s = 'h.e.l.l.o'
a = s.split('.')
# ['h', 'e', 'l', 'l', 'o']
因此,您的for
循环看起来应该更像:
for i in json_array:
json_list.append({'name': i['name'].split('.'), 'money': i['money']})
输出应为
json_list = [{'name': ['george', 'doe', 'jane'], 'money': 5000}]