python - 将python中的有序dict转换为普通dict并提取值
问题描述
我有一个包含纬度和经度的 csv 文件。
-37.8994,144.9799
-37.8063,144.9964
-37.8901,144.8885
我有 python 脚本,它将这些值从地理编码转换为位置。
import csv
import reverse_geocoder as rg
with open('bb.csv', "rt", encoding='ascii') as infile:
read = csv.reader(infile)
for row in read :
result = rg.search(row)
print(type(result[0]))
print(result)
脚本的输出
Loading formatted geocoded file...
<class 'collections.OrderedDict'>
[OrderedDict([('lat', '-37.88214'), ('lon', '144.98215'), ('name', 'Elwood'), ('admin1', 'Victoria'), ('admin2', 'Port Phillip'), ('cc', 'AU')])]
<class 'collections.OrderedDict'>
[OrderedDict([('lat', '-37.8'), ('lon', '145'), ('name', 'Abbotsford'), ('admin1', 'Victoria'), ('admin2', ''), ('cc', 'AU')])]
<class 'collections.OrderedDict'>
[OrderedDict([('lat', '-37.857'), ('lon', '144.89769'), ('name', 'Williamstown'), ('admin1', 'Victoria'), ('admin2', 'Hobsons Bay'), ('cc', 'AU')])]
我正在努力提取键的值——名称、admin1、admin2 和 cc。
本质上,我想将 csv 文件中的 lat、long 值转换为它们的位置值,然后将这些值粘贴回 CSV。请有人帮忙解决这个问题。
解决方案
您对 Python 对这些字典的打印表示感到困惑。无论是否订购它们都不是这里的问题,只是您没有打印您说要打印的内容。
for row in read:
result = rg.search(row)
print(type(result[0]))
for item in result:
print(",".join("'%s': '%s'" % (k,v) for k, v in item.items()))
# or maybe
print(",".join([item['lat'], item['lon']]))
这类似于print(print)
仅打印Python函数的表示print
,而不是其实际内容(无论如何这对普通人类读者来说毫无用处)。
推荐阅读
- lua - 这是哪种编码以及如何解码
- javascript - 移除之前设置的边框颜色
- python-3.x - 是否有 python 3 命令来清除输出控制台?
- python - SVC MultiClass Classification OVO 决策函数说明
- oracle - Oracle apex 安装后无法正常工作 http://localhost:8282/apex/apex_admin
- pandas - 提取过滤两个以上条件的行
- ruby-on-rails - 在 Rails 中提交表单后,如何使复选框保留其价值
- machine-learning - 95% 置信区间和 68-95-99 规则中的 95% 有什么区别?
- typescript - 在函数中使用条件 Typescript 类型进行车削操作
- firebase - 如何按学科名称计算分值?