如何在数组中分割字符串

时间:2019-07-11 15:46:21

标签: python arrays json python-3.x split

我需要在'。'处分割字符串。而且之后的一切都无关紧要,我只需要索引[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}

2 个答案:

答案 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}]