【问题标题】:Modify large JSON in Python在 Python 中修改大型 JSON
【发布时间】:2018-10-17 09:18:55
【问题描述】:

我有一个用于移动联系人数据的 JSON,格式如下:

post_data = [
    {
        "contact_first_name": "First Name",
        "contact_last_name": "Last Name",
        "contact_no": "98 9898 9999",
        "is_registered_user": False
    },
    {
        "contact_first_name": "First Name",
        "contact_last_name": "Last Name",
        "contact_no": "1 987 876 6545",
        "is_registered_user": False
    },
    {
        "contact_first_name": "First Name",
        "contact_last_name": "Last Name",
        "contact_no": "44 674 437878 4343",
        "is_registered_user": False
    }
]

我想从contact_no键中删除所有空格,如果我们在json中有超过10000个联系人,python中有没有最好的解决方案来迭代和删除空格。

这是我在 python 中的代码,但我认为这不是大型数据集的好解决方案:

final_json = []
for index, json_data in enumerate(post_data):
    for i in json_data["contact_no"]:
        final_json.append(i) if i!=' ' else i
    formated_contact = ''.join(final_json)
    post_data[index]["contact"] = formated_contact
print post_data

【问题讨论】:

  • 为什么要投反对票?
  • 您的主要问题是将大型 JSON 存储在内存中,而不是对其进行修改
  • @AzatIbrakov 列出 10000 个这样的小字典确实不太可能导致内存问题

标签: python json


【解决方案1】:
for data in post_data:
    data['contact_no'] = data['contact_no'].replace(' ', '')


print(post_data)
# [{'contact_first_name': 'First Name', 'contact_last_name': 'Last Name', 'contact_no': '9898989999', 'is_registered_user': False}, {'contact_first_name': 'First Name', 'contact_last_name': 'Last Name', 'contact_no': '19878766545', 'is_registered_user': False}, {'contact_first_name': 'First Name', 'contact_last_name': 'Last Name', 'contact_no': '446744378784343', 'is_registered_user': False}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 2020-04-26
    • 2014-05-19
    • 2014-04-16
    • 2022-06-25
    相关资源
    最近更新 更多