python - 使用 python 3.5 用希伯来语和英语解析 json 文件

我的 json 文件,好吧,它的一部分看起来像:

[
  {
    "id": 472,
    "name": "אבו גוש",
    "engName": "ABU GHOSH"
  },
  {
    "id": 473,
    "name": "אבו סנאן",
"engName": "ABU SINAN"
  },
  {
     "id": 1342,
    "name": "אבו קורינאת (יישוב)",
    "engName": "ABU QUREINAT"
  },
]

等..

我的部分代码如下:

with open('israelCities.json') as data_file:
    jsonData = json.loads(data_file.read().encode('utf8'))
    print(jsonData)

它在第二行失败(jsonData = ....), 我是 python 的新手,没有看到任何类似的问题, 任何帮助将不胜感激

谢谢!!

编辑

那两个对我来说很完美:

 import json
 import urllib.request
 url='https://raw.githubusercontent.com/royts/israel-cities/master/israel-cities.json'
 data = urllib.request.urlopen(url).read().decode('utf-8')
 json.loads(data)

还有这个:

import json
import requests

r = requests.get('https://raw.githubusercontent.com/royts/israel-cities/master/israel-cities.json')
with open('israelCities.json', 'w') as f:
    json.dump(r.json(), f)


with open('israelCities.json') as f:
json_data = json.load(f)

谢谢!!

最佳答案

您只需要告诉loads编码是什么,而不是尝试将其转换为编码。

所以,

import json

with open('israelCities.json') as data_file:
    jsonData = json.loads(data_file.read(), encoding='utf-8')
    print(jsonData)

会产生

[{u'engName': u'ABU GHOSH', u'id': 472, u'name': u'\u05d0\u05d1\u05d5 \u05d2\u05d5\u05e9'}, {u'engName': u'ABU SINAN', u'id': 473, u'name': u'\u05d0\u05d1\u05d5 \u05e1\u05e0\u05d0\u05df'}, {u'engName': u'ABU QUREINAT', u'id': 1342, u'name': u'\u05d0\u05d1\u05d5 \u05e7\u05d5\u05e8\u05d9\u05e0\u05d0\u05ea (\u05d9\u05d9\u05e9\u05d5\u05d1)'}]

但前提是您首先将 israelCities.json 的编码保存为“utf-8”!

https://stackoverflow.com/questions/34124019/

相关文章:

d3.js - d3 中的自定义比例

sql - 带 Where 子句的 OFFSET SQL 查询

android - 谷歌身份验证后,即将到来的网址不允许我在 Cordova 应用程序中走得更远

java - 收听 RabbitMQ 队列并获取事件通知

android - 带有 Snackbar 和透明导航栏的 FloatingActionButton

java - 在 Apache Spark SQL 中对多行进行操作

matrix - Spark RDD 到 Matrix

git - 为什么 cherry-pick 告诉我所有线路都已更改?

sql-server - 在 SQL Server 2012 的情况下,尝试在我的 select 语

types - 如何声明 TypeScript 导入 * 类型?