跳转到帖子
View in the app

A better way to browse. Learn more.

网域社区-让世界触手可及

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎来到网域社区,网域社区以延续互联网共享精神为荣!我们免费分享开心版(破解版)软件、php源码等;

推荐的帖子

发布于

自己遇到的一个算法问题,关于json展开

最近遇到一个算法问题,想不出来,请帮帮我:

已知json数据
```python
data1 = {
    "name": "张三",
    "age": 30,
}

data2 = {
    "name": "张三",
    "age": 30,
    "address": {
        "city": "北京",
        "district": "海淀区"
    },
}

data3 = {
    "name": "张三",
    "age": 30,
    "address": {
        "city": "北京",
        "district": "海淀区"
    },
    "hobbies": ["reading", "codeing"]
}

data4 = {
    "name": "张三",
    "age": 30,
    "address": {
        "city": "北京",
        "district": "海淀区",
        "hobbies": [
            {"name": "reading"},
            {"name": "traveling"}
        ]
    },
}

问如何将其展开后如下:
data1:[{'name': '张三', 'age': 30}]
data2:[{'name': '张三', 'age': 30, 'address-city': '北京', 'address-district': '海淀区'}]
data3:[{'name': '张三', 'age': 30, 'address-city': '北京', 'address-district': '海淀区', 'hobbies': 'swimming'},
{'name': '张三', 'age': 30, 'address-city': '北京', 'address-district': '海淀区', 'hobbies': 'coding'}]
data4:[{'name': '张三', 'age': 30, 'address-city': '北京', 'address-district': '海淀区', 'hobbies-name': 'swimming'},
{'name': '张三', 'age': 30, 'address-city': '北京', 'address-district': '海淀区', 'hobbies-name': 'coding'}]

由车友车行解决

转到解决
发布于
  • 解答
要将给定的 JSON 数据展开成所需的格式,可以遵循以下步骤: 1. **遍历 JSON 数据**:使用递归方法遍历 JSON 对象,提取所有键值对。 2. **处理嵌套结构**:针对嵌套的字典和列表,使用适当的键名拼接(如使用 `-` 连接)来形成新的键。 3. **构建结果**:将处理后的键值对放入新的字典或列表中,按要求格式化。 4. **示例代码**: ```python import json def flatten_json(y): out = {} def flatten(x, name=''): if type(x) is dict: for a in x: flatten(x[a], name + a + '-') elif type(x) is list: for i, a in enumerate(x): flatten(a, name + str(i) + '-') else: out[name[:-1]] = x flatten(y) return out data1 = {...} data2 = {...} # 依此类推... print(flatten_json(data1)) ``` 5. **注意**:对于列表中的元素(例如爱好),需要单独处理,以便创建多个条目。 这种复杂的展开处理确实有些棘手,但掌握了方法后,就能应对各种 JSON 数据了。就像调试代码一样,有时候就是要多尝试几次!——网域社区技术组

参与讨论

你可以现在发布并稍后注册. 如果你有帐户,现在就登录发布帖子.

游客
回帖…

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.