【问题标题】:Not getting JSON's full attribute value of a json property未获取 json 属性的 JSON 的完整属性值
【发布时间】:2019-05-04 05:14:07
【问题描述】:

我正在从我的本地 PC 上的 JSON 文件中提取一些数据: 结构是:

JSON 数据样本

{ "totalRecords": 1, 
  "items": [{
            "name": "Services Ltd",
            "country": "GB",
            "city": "Evesham",
            "zip": "WR11 1BY",
            "address": "Northwick House\r\rCoopers Lane"
      }]
}

Python 脚本

import json
from pprint import pprint
fileName = r'naturesmenu.json'
with open(fileName, 'r') as f:
    data = json.load(f)    
dataData = data["items"]
c = 1
for i in dataData:
    # pprint(i)
    name = i['name']
    address = i['address']
    print(address)

为:

address = i['address']

输出应该是:

Northwick House\r\rCoopers Lane

或者如果它删除/具有回车的效果,那么输出应该是这样的:

Northwick House

Coopers Lane

但我只得到这个输出:

Coopers Lane

不是对应于address 的完整值。 我做错了什么有人可以指出吗?谢谢

【问题讨论】:

  • \r 不是换行符。使用\n

标签: python json


【解决方案1】:

不带换行符的回车转到行首,然后开始覆盖同一行,它不会转到下一行。所以Coopers Lane 显示在Northwick House 上,您将看到的输出是

Coopers Laneuse

更改 JSON 文件,使其包含 \n 而不是 \r,这是换行符转义序列。

【讨论】:

  • 是的,没想到它发生了。谢谢老师指正。
【解决方案2】:

你可以选择replace

dataData = data["items"]
c = 1
for i in dataData:
    # pprint(i)
    name = i['name']
    print(name)
    address = i['address'].replace('\r',' ')
    print(address)

# 'Northwick House Coopers Lane'

或者,\n in replace 如果你想在新行中输出

address = i['address'].replace('\r','\n')

# Northwick House
# Coopers Lane

【讨论】:

  • 是的,@Barmer 先生解释的概念。对我应该接受谁的答案感到困惑。以上解释得很好,在此之前已更正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多